我正在尝试单击图像,但在每次执行后或当应用程序的新 swssion 打开时,分配给该图像的“id”会发生如下所述的更改。请帮我解决这个问题。
<img class="x-form-trigger x-form-arrow-trigger" id="ext-gen307" src="/slm/js-lib/ext/2.2/resources/images/default/s.gif" complete="complete"/>
<img class="x-form-trigger x-form-arrow-trigger" id="ext-gen306" src="/slm/js-lib/ext/2.2/resources/images/default/s.gif" complete="complete"/>
<img class="x-form-trigger x-form-arrow-trigger" id="ext-gen308" src="/slm/js-lib/ext/2.2/resources/images/default/s.gif" complete="complete"/>
最佳答案
我个人更喜欢使用id
, name
或title
要匹配的属性。由于您想要的图像有 id
,您可以对其进行匹配。
但是,ID 似乎是动态的,因此您需要考虑到这一点。
driver.findElement(By.cssSelector("img[id^='ext-gen']"))
这个,在英语中的意思是"Find me an <img> that has an id="" attribute that *starts with* "ext-gen"
您可以匹配src
,但就个人而言,您应该更喜欢其他不太可能更改的属性,例如 ID。
参见this page有关 Selenium CSS 选择器的引用。
关于java - Selenium 图像元素 id 每次执行后都会改变 - 如何点击图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29560007/