css - 带有 ASP.NET 控件的 Selenium WebDriver

标签 css selenium css-selectors

我正在尝试在使用 ASP.NET 创建的网页上查找元素。问题是 4.0 版之前的 ASP.NET 会为控件生成一些长名称,因此要找到一个简单的“用户名”输入字段,我需要使用其全名:

var elementName = "LoginControl1_uxLoginControl_UserName";
var username = Browser.TryFind(By.Name(elementName));

它似乎工作正常,但我正在寻找更简单的方法。是否可以使用部分元素名称或部分 ID 来做同样的事情?例如

var username = Browser.TryFind(By.CssSelector("UserName"));

这应该返回名称/ID 中包含“UserName”的所有元素(甚至是第一个元素)。

最佳答案

您可以使用 xpath 执行此操作,

var username = Browser.TryFind(By.Xpath("//*[contains( @name , 'UserName')] "));

另一种选择是尽可能使用 css 选择器

关于css - 带有 ASP.NET 控件的 Selenium WebDriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9382064/

相关文章:

html - 将图像超链接翻转为文本行

html - 使用 DOMPDF 打开 pdf 页面

selenium - 为 Firefox 创建一个假的网络摄像头流

html - 将样式应用于第一行的单元格

php - 使用单选按钮作为复选框

javascript - 当不同跨度具有事件类时更改跨度的内容

java - Selenium Webdriver 和 Java。元素在点 (x, y) 处不可单击。其他元素将收到点击

java - 选择文本需要 XPath 建议

html - 在不知道第一个 child 的类型的情况下选择第一个 child

css - 删除::before或::after伪元素CSS定义