1

我试图找到一个具有动态值的元素,例如<span class="ms-Button-label label-175" id="id__177">Save</span> 在检查元素中,id 和 class 值往往会随着每次刷新而改变,在这种情况下我如何才能找到 selenium 中的元素?我尝试了troguht xpath,但似乎不起作用,因为找不到路径,我想找到xpath总是找到“保存”世界,但实际上我不知道我是否做得很好:driver.find_element_by_xpath(//span(@.... 但是呢?如果每次都更改,如何插入元素?谢谢!

4

1 回答 1

2

像这样的东西可能会起作用:

driver.find_element_by_xpath('//span[text()="Save"]')

但是,如果页面上有多个带有“保存”文本的按钮,这将失败。

在这种情况下,您可能会尝试找到一些不会更改且包含按钮的特定外部元素(div、表单等)。然后找到里面的按钮。

对司机的要求很少:

specific_div = driver.find_element_by_id("my_specific_div")
button = specific_div.find_element_by_tag_name("span")  # e.g. there is only one span in that div

或者使用更具体的 xpath:

button = driver.find_element_by_xpath('//div[@class="some-specific-class"]/span[text()="Save"]')

如果需要,在按钮之前搜索更多嵌套元素,这样可以获得更窄的搜索字段。

文档中的更多示例。

于 2021-01-07T18:37:38.233 回答