当前位置: 首页 > 面试题库 >

是否可以通过selenium中的部分ID匹配来定位元素

端木鹏
2023-03-14
问题内容

我正在尝试使用生成的ID来查找元素,其中ID的某些部分是已知的;例如:

id="page_x002e_x0023_default-create-firstname"

其中后3个字词(_default-create-firstname)是已知的,但前面的任何内容都可能更改。这可能吗?


问题答案:

你可以申请一个 末端,与 CSS选择器:

By.cssSelector("[id$=default-create-firstname]")

更新资料

自从答案发布以来已经过去了一段时间。以下是链接的mozilla开发人员页面上的一些更新以及以下注释:

新用途By.css代替By.cssSelector

By.css("[id$=default-create-firstname]")

另请参阅以下四种可能性

  • 以。。。开始
  • 里面的任何地方
  • 内部任何地方,不考虑大小写
/* Internal links, beginning with "#" */
a[href^="#"] {
  background-color: gold;
}

/* Links with "example" anywhere in the URL */
a[href*="example"] {
  background-color: silver;
}

/* Links with "insensitive" anywhere in the URL,
   regardless of capitalization */
a[href*="insensitive" i] {
  color: cyan;
}

/* Links that end in ".org" */
a[href$=".org"] {
  color: red;
}


 类似资料:
  • 当我运行此代码时: 我收到以下错误: org.openqa.selenium.InvalidSelectorException:无法计算xpath表达式'//输入[包含(@id,'name']'要留档此错误,请访问:http://seleniumhq.org/exceptions/invalid_selector_exception.html构建信息:版本:'2.20.0',修订版:'16008'

  • 问题内容: 如何从HashMap的位置检索元素,这有可能吗? 问题答案: HashMap不保留排序: 此类无法保证地图的顺序。特别是,它不能保证顺序会随着时间的推移保持恒定。 看一下LinkedHashMap,它保证了可预测的迭代顺序。

  • 问题内容: 我正在使用 BeautifulSoup 。我必须找到对ID为的标签的引用,例如:。 例如: 我试过了: 我该如何过滤? 问题答案: 您可以传递函数findAll: 或正则表达式:

  • 你知道为什么吗?

  • 我是个新手,学习面向对象的Java。我有一个关于通过调用方法为多个数组添加元素的问题。我只是试图避免多次创建循环,对于多个数组,我想创建一个方法,它将包含必要的循环来添加元素(甚至将它们显示为输出),这样我就可以在需要的时候调用它。希望你明白我想说的话。请原谅我的英语不好。

  • 我试图通过selenium单击save按钮,但是,我得到的错误是它无法定位元素。 这是网站的html部分 这是我得到的错误: NoSuchelementException:没有这样的元素:找不到元素:{“method”:“id”,“selector”:“divflashviewermain_savepdfbuttonicon”} (会话信息:chrome=74.0.3729.169)(驱动程序信息