2017-01-05 4 views
0

verwenden Ich möchte JavaScript Code schreiben und es in Python+Selenium Skript verwenden. Target URL ist Microsoft account login page. Hier möchte ich Onclick öffnen Terms of use Seite nicht in der neuen Registerkarte, aber in einem neuen Fenster, so dass ich einige Änderungen an entsprechenden Anker-Tag vorgenommen. Ich habe ein wenig Erfahrung in JS, so ist dies, was ich jetzt habe:Wie JS-Variable in HTML-Attributwert

document.querySelector('a#ftrTerms').setAttribute("onclick", "window.open('https://login.live.com/gls.srf?urlID=WinLiveTermsOfUse&mkt=EN-US&vv=1600', '', 'width=800,height=600')") 
document.querySelector('a#ftrTerms').removeAttribute('href') 

... und das funktioniert gut (nicht die beste Art und Weise, aber es ist ok). Allerdings Umleitung URL ist hartcodiert, so dass ich folgende URL von href zuerst zu bekommen und es dann zuzuschreiben passieren:

var reference = document.querySelector('a#ftrTerms').getAttribute('href'); 
document.querySelector('a#ftrTerms').setAttribute("onclick", "window.open(\'' + reference + '\', '', 'width=800,height=600')") 
document.querySelector('a#ftrTerms').removeAttribute('href') 

... und dieser Code nicht funktioniert: mein Attribut in HTML erscheint wie

onclick="window.open('' + reference + '', '', 'width=800,height=600')".

Also, wie reference Namen mit seinem tatsächlichen Wert ersetzen?

Antwort

1

Sie müssen einfach nur die Zeichenfolge aus dem Wert berechnen:

document.querySelector('a#ftrTerms').setAttribute("onclick", "window.open('" + reference + "', '', 'width=800,height=600')") 

reference sollte nicht in der Zeichenfolge sein, aber mit dem Rest des Strings Präfix und Suffix

+0

Ja verketteten, jetzt ist es funktioniert. .Vielen Dank – Andersson

Verwandte Themen