繁体   English   中英

一种使用硒定位元素的方法

[英]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 如果我无法使用干净简单的方法来定位元素,则始终使用此方法。

  1. 您可以使用CSS选择器识别所有标签: .t6.s10.clickable.no-underline

  2. 然后使用列表(数组)中的索引访问所需的元素。

你也可以尝试

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM