如何单击动态更改ID和类Selenium Java

时间:2018-07-19 12:25:24

标签: javascript jquery selenium selenium-webdriver

详细信息- 要选择下拉列表,但ID和类已更改。我也尝试使用 CSS选择器进行选择,但没有结果。

请参见下图enter image description here

想要一个一个地单击所有下拉菜单,但是id和类是动态更改

代码-

jQuery('.yui3-widget.yui3-c-gizmo.yui3-c-button.yui3-c-button-content.description.btn.btnSilvericon.button-primary.icon-right-dropdown.s-btn-all').eq(1).click()

谢谢。

3 个答案:

答案 0 :(得分:2)

尝试以下CSS定位器:

button.description.btnSilvericon[id^='yui'][title='All']

实践CSS选择器来处理动态元素:

https://www.w3.org/TR/selectors-3/#selectors

答案 1 :(得分:0)

您可以使用以下路径:

//button[starts-with(@id, 'yui') and @title='All']

 //span[starts-with(@id, 'yui') and contains(.,'All')]

对于CSS:

button[id^='yui'][title='All'] or

span[id^='yui']

^ =以CSS(Shift + 6)开头

希望对您有帮助。

答案 2 :(得分:0)

如果要单击所有下拉元素,仅使用一个类或所有类(但仅限于它们)共有的几个类的组合就足够了。您无需指定随机ID或类。

如果您正在使用Selenium,请使用findElements返回所有匹配的元素,然后在此列表上循环单击以单击其元素。如果您只想指定一个类名,请使用by.class定位符,或者使用by.cssSelector来指定由点前缀和分隔的类的组合。