为了账号安全,请及时绑定邮箱和手机立即绑定

Selenium 选择具有相同类别的不同元素

Selenium 选择具有相同类别的不同元素

隔江千里 2023-05-23 16:39:46
有没有一种方法可以通过 css 选择器使用查找元素,以便每次 selenium 完成一个元素上的任务时,它都会移动到具有相同类的下一个元素来做同样的事情?例如,使用这行代码时,机器人会在同一元素上重复任务。 comment_button = driver.find_element_by_css_selector("svg[aria-label='Comment']") comment_button.click()  comment_box = driver.find_element_by_css_selector("textarea[aria-label='Add a comment…']") comment_box.send_keys("xxx") post_button= driver.find_element_by_xpath("//button[@type='submit']") post_button.click() driver.back()我如何确保每次任务完成时硒都会移动到下一个按钮?
查看完整描述

1 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

我的理解是:

  1. 您希望将所有具有 DOM 的元素定位为

  2. 一旦找到你想要点击它。

  3. 我假设单击此元素后页面不会刷新。

from selenium import webdriver

driver = webdriver.Chrome('..\drivers\chromedriver')

driver.get("file:///C:/Users/rahul/OneDrive/Desktop/abc.html")

driver.maximize_window()

comment_button = driver.find_elements_by_css_selector("svg[aria-label='add comment']")

for btn in comment_button :

    btn.click()

请让我知道它是否有效。如果我不完全理解你的问题,也请告诉我。


虚拟 HTML:


<article>

<div>

<section><span><button><div><svg aria-label="add comment"></svg></section></span></button>

</div>

<div>

<section><span><button><div><svg aria-label="add comment"></svg></section></span></button>

</div>

<div>

<section><span><button><div><svg aria-label="add comment"></svg></section></span></button>

</div>

<div>

<section><span><button><div><svg aria-label="add comment"></svg></section></span></button>

</div>

<div>

<section><span><button><div><svg aria-label="add comment"></svg></section></span></button>

</div>

<div>

<section><span><button><div><svg aria-label="add comment"></svg></section></span></button>

</div>

</article>


查看完整回答
反对 回复 2023-05-23
  • 1 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信