Python 使selenium连续n次单击同一类的连续元素
我有一个与25家公司位于同一类网页。 以下是该网站的链接- 这是HTML代码:Python 使selenium连续n次单击同一类的连续元素,python,python-2.7,selenium,xpath,selenium-webdriver,Python,Python 2.7,Selenium,Xpath,Selenium Webdriver,我有一个与25家公司位于同一类网页。 以下是该网站的链接- 这是HTML代码: <section class="rslwrp"> <section class="jbbg">..</section> <section class="jbbg">..</section> <section class="jbbg">..</section> <section class="jbb
<section class="rslwrp">
<section class="jbbg">..</section>
<section class="jbbg">..</section>
<section class="jbbg">..</section>
<section class="jbbg">..</section>
<section class="jbbg">..</section>
<section class="jbbg">..</section>
******and so on******
有人能给我建议吗。提前感谢您的帮助。循环查看的结果,获取所有链接并逐一显示:
links = [link.get_attribute('href') for link in browser.find_elements_by_xpath('//span[@class="jcn"]/a')]
for link in links:
browser.get(link)
循环查看的结果,逐个获取所有链接和它们:
links = [link.get_attribute('href') for link in browser.find_elements_by_xpath('//span[@class="jcn"]/a')]
for link in links:
browser.get(link)
最简单的方法是使用
通过xpath查找元素,然后遍历列表:
linksCount = len(browser.find_elements_by_xpath('//section[@class="jbbg"]/section[2]/section[1]/aside[1]/p[1]/span/a'))
for x in range(linksCount)
browser.find_element_by_xpath('(//section[@class="jbbg"]/section[2]/section[1]/aside[1]/p[1]/span/a)[' + x + ']')
最简单的方法是使用通过xpath查找元素,然后遍历列表:
linksCount = len(browser.find_elements_by_xpath('//section[@class="jbbg"]/section[2]/section[1]/aside[1]/p[1]/span/a'))
for x in range(linksCount)
browser.find_element_by_xpath('(//section[@class="jbbg"]/section[2]/section[1]/aside[1]/p[1]/span/a)[' + x + ']')
正如前面的海报所提到的,您应该遍历其中的每一个,以便单击。但是,在循环中,您必须标识应用程序后退按钮或浏览器后退按钮才能返回到上一页
但是,请注意,一旦返回上一页,使用find_元素捕获的元素可能由于html重新加载而无效或过时。因此,您可能希望再次在循环中重新定位相同的元素,以便程序工作,正如前面的海报所提到的,您应该遍历其中的每一个元素以进行单击。但是,在循环中,您必须标识应用程序后退按钮或浏览器后退按钮才能返回到上一页
但是,请注意,一旦返回上一页,使用find_元素捕获的元素可能由于html重新加载而无效或过时。因此,您可能希望在循环中重新定位相同的元素,以使程序正常运行这可能会失败,出现staleelementreferenceexception
。@Richard yup,给我一点时间。@Richard检查一下-首先我们获取所有链接,然后跟踪它们。我也认为这是一个选项。如果出现staleelementreferenceexception
,这可能会失败@Richard是的,给我一点时间。@Richard检查一下-首先,我们获取所有链接,然后跟踪它们。我也认为这是一个选项。谢谢你的帮助,但它不应该是正确的,因为它会给出一个错误“无法连接'str'和'int'对象”。谢谢你的帮助,但它不应该是正确的,因为它会给出一个错误“无法连接'str'和'int'对象”