一尘不染

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

selenium

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

id="page_x002e_x0023_default-create-firstname"

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


阅读 466

收藏
2020-06-26

共1个答案

一尘不染

你可以申请一个 末端,与 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;
}
2020-06-26