![](/img/trans.png)
[英]Unable to locate element (widget) using Selenium NoSuchElementException
[英]A way to locate an element using Selenium
我正在尝试查找href
元素一段时间,但未成功。
String EMAIL_NOTIFICATIONS_PAGE = "[ng-href=\"#/settings/notifications/48\"]";
这个数字一直在变化。 硒有时可以找到元素并按下它,但有时却不能。 我注意到这个数字一直在变化。
我附上了2张屏幕截图。
有什么建议如何定位其href
在运行时更改的元素?
如果动态更改,则可以尝试以下操作:
driver.findElement(By.xpath(".//a[contains(text(), 'Email notification settings')]"));
这取决于文本,这不是最佳实践,但可能应该可以。
您可以找到所有href元素,并检查其文本是否包含特定内容,您的情况是Email notification settings
。 如果我无法使用干净简单的方法来定位元素,则始终使用此方法。
您可以使用CSS选择器识别所有标签: .t6.s10.clickable.no-underline
。
然后使用列表(数组)中的索引访问所需的元素。
你也可以尝试
driver.FindElement(By.LinkText("Email notification settings"));
您可以使用以下任何XPath:
//a[contains(text(),'Email notification settings')]
要么:
//a[contains(@href,'#settings/notifications/18')]
要么:
//a[@href='#settings/notifications/18']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.