我想编写JavaScript
代码并在Python+Selenium
脚本中使用它。目标URL
为Microsoft account login page。在这里,我想强制点击打开Terms of use
页面,而不是在新标签页面中,但是在新窗口中,我对相应的锚标记进行了一些更改。我在JS
有一点经验,所以这就是我现在所得到的:
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')
......这很好(不是最好的方法,但没关系)。但是,重定向URL
是硬编码的,因此我首先使用以下内容从URL
获取href
,然后将其传递给属性:
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')
...且此代码无效:我HTML
中的属性显示为
onclick="window.open('' + reference + '', '', 'width=800,height=600')"
。
那么如何用reference
名称替换其实际值?
答案 0 :(得分:1)
您只需要根据值计算字符串:
document.querySelector('a#ftrTerms').setAttribute("onclick", "window.open('" + reference + "', '', 'width=800,height=600')")
reference
不应该在字符串中,而是与字符串前缀和后缀的其余部分连接