如何选择多个具有几乎相同xpath的元素?

发布于 2025-01-10 06:57:09 字数 546 浏览 0 评论 0原文

我有一些具有以下 xpath 格式的元素:

//*[@id="dashboardRoot"]/span/div/div/div/div[1]/div/div/div[1]/main/div[2] /div[2]/div[1]/div/div/table/tbody/tr[i]

where i = 1,2,3,4,....etc

如何在循环中每次选择一个元素?

我尝试了这种方式:

for i in range(5):
    
    try:
        
        xpath = '//*[@id="dashboardRoot"]/span/div/div/div/div[1]/div/div/div[1]/main/div[2]/div[2]/div[1]/div/div/table/tbody/tr["i+1"]'

        select_card = browser.find_element_by_xpath(xpath).click()

但它每次都适用于第一个元素,并且不会移动下一个元素。

提前致谢

i have some elements with the following xpath format:

//*[@id="dashboardRoot"]/span/div/div/div/div[1]/div/div/div[1]/main/div[2]/div[2]/div[1]/div/div/table/tbody/tr[i]

where i = 1,2,3,4,....etc

How to select an element every time in a loop?

i tried this way:

for i in range(5):
    
    try:
        
        xpath = '//*[@id="dashboardRoot"]/span/div/div/div/div[1]/div/div/div[1]/main/div[2]/div[2]/div[1]/div/div/table/tbody/tr["i+1"]'

        select_card = browser.find_element_by_xpath(xpath).click()

but it works with the first element every time and don't move tho the next one.

thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

太阳男子 2025-01-17 06:57:09

要将 i 值放入字符串中,您必须将其放入字符串格式,如下所示:

xpath = f'//*[@id="dashboardRoot"]/span/div/div/div/div[1]/div/div/div[1]/main/div[2]/div[2]/div[1]/div/div/table/tbody/tr[{i+1}]'

xpath = '//*[@id="dashboardRoot"]/span/div/div/div/div[1]/div/div/div[1]/main/div[2]/div[2]/div[1]/div/div/table/tbody/tr[{}]'.format(i+1)

to place the i value in the string, you must put it in the string format as below :

xpath = f'//*[@id="dashboardRoot"]/span/div/div/div/div[1]/div/div/div[1]/main/div[2]/div[2]/div[1]/div/div/table/tbody/tr[{i+1}]'

or

xpath = '//*[@id="dashboardRoot"]/span/div/div/div/div[1]/div/div/div[1]/main/div[2]/div[2]/div[1]/div/div/table/tbody/tr[{}]'.format(i+1)
⒈起吃苦の倖褔 2025-01-17 06:57:09

使用 find elements 而不是 find element。您的代码应该是这样的:

xpath = '//*[@id="dashboardRoot"]/span/div/div/div/div[1]/div/div/div[1]/main/div[2]/div[2]/div[1]/div/div/table/tbody/tr'
elements= browser.find_elements_by_xpath(xpath)
for element in elements:
    element.click()

Instead of find element,use find elements.your code should be this:

xpath = '//*[@id="dashboardRoot"]/span/div/div/div/div[1]/div/div/div[1]/main/div[2]/div[2]/div[1]/div/div/table/tbody/tr'
elements= browser.find_elements_by_xpath(xpath)
for element in elements:
    element.click()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文