为什么硒会改变元素's href
why does selenium change the element's href?
我正在使用selenium检查web元素,然后获取其"href"
driver.findElement(getSelectorForButton(name)).getAttribute("href")
为什么我得到的结果是...current url...#
,而不是我在浏览器控制台中看到的jut #
?
<a class="action-btn big-button btn-phone take-button v3" data-model="{"analytics_url":"/coupons/use?action_source=popup&cookie=..uot;],"redirect_url":null}" href="#">
<div class="btn-text">
<span>Call Now</span>
</div>
</a>
我可能错了,但我认为这是因为
driver.findElement(getSelectorForButton(name));
不返回DOM元素,但使用('href')
参数调用的getAttribute
属性(方法)的硒包装器不返回href
属性内容,而是返回href
特性属性。
href
属性由浏览器自动"填充"href中每个相对/绝对路径的匹配前缀。
以下示例:
HTML:
<a href="#" id="link1">Test</a>
<a href="./uri" id="link2">Test</a>
<a href="/uri" id="link3">Test</a>
JavaScript:
var a = document.getElementById('link1');
console.log(a.href); // '...Whatever_your_url_is...#'
console.log(a.getAttribute('href')); // '#'
var b = document.getElementById('link2');
console.log(b.href); // '...Whatever_your_url_is.../uri'
console.log(b.getAttribute('href')); // '/uri'
var c = document.getElementById('link3');
console.log(c.href); // '...Whatever_your_domain_and_port_is.../uri'
console.log(c.getAttribute('href')); // './uri'
此处演示:http://jsfiddle.net/j8t470uk/
原因是(根据文档)
该方法将返回给定属性的值,除非该属性不存在,在这种情况下,将返回具有相同名称的属性的值(例如,对于textarea元素的"value"属性)。如果两个值都未设置,则返回null。
getAttribute首先在DOM中查找属性,如果可以看到href包含完整的web url。
例如:在这个问题的答案中,如果您检查活动选项卡,您可以看到href="/questions/28339297/为什么硒会改变元素href?answertab=active#tab top",但如果您查看那里的DOM,您可以发现这个href附加到http://stackoerflow.com。
相关文章:
- 锚点元素的href属性自动更改
- 锚点元素不't使用svg时,请打开EDGE上的href
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 将href中的图像替换为其他元素中的图像
- 将属性添加到带有href链接但没有#的元素
- 用于href中元素的jquery选择器
- 在href跳转到另一个html元素之前,执行Knockout.js数据绑定:点击函数
- Javascript数据将元素属性绑定到URL中的锚href
- JQuery监听点击并使用点击元素发出警报's href
- 替换 href 元素菜单中的 SID 值数据
- Selenium Webdriver 无法在菜单中找到 href 元素
- 用jQuery替换href元素
- href元素内的内联javascript
- 动态设置“href”元素
- 将字符串转换为HTML -字符串为"href"元素
- 如何用Javascript为图表中的每一列添加更多的href元素
- 使用JavaScript向特定的href元素添加类
- 如何用Javascript替换鼠标悬停时的所有href元素
- 显示相对于Href元素的Div
- 如何用javascript改变HTML href元素的一部分