猿问

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

有没有一种方法可以通过 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()

我如何确保每次任务完成时硒都会移动到下一个按钮?


隔江千里
浏览 142回答 1
1回答

繁星点点滴滴

我的理解是:您希望将所有具有 DOM 的元素定位为一旦找到你想要点击它。我假设单击此元素后页面不会刷新。from selenium import webdriverdriver = 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>
随时随地看视频慕课网APP

相关分类

Python
我要回答