Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使selenium连续n次单击同一类的连续元素_Python_Python 2.7_Selenium_Xpath_Selenium Webdriver - Fatal编程技术网

Python 使selenium连续n次单击同一类的连续元素

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

我有一个与25家公司位于同一类网页。 以下是该网站的链接- 这是HTML代码:

<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'对象”