使硒单击具有相同类的连续元素n次

时间:2014-05-24 16:23:35

标签: 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="jbbg">..</section>
    <section class="jbbg">..</section>
    <section class="jbbg">..</section>
    ******and so on******

我不确定,我如何让selenium单击一个类然后再浏览browser.back()然后再次移动到第二个browser.back()然后再移到第三个等等。 n次。

我正在使用,

browser.find_element_by_xpath('//section[@class="jbbg"]/section[2]/section[1]/aside[1]/p[1]/span/a').click()

请有人劝告。在此先感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

循环遍历find_elements_by_xpath()的结果,逐个获取所有链接和get()

links = [link.get_attribute('href') for link in browser.find_elements_by_xpath('//span[@class="jcn"]/a')]
for link in links:
    browser.get(link)

答案 1 :(得分:0)

最简单的方法是使用find_elements_by_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 + ']')

答案 2 :(得分:0)

正如上一张海报所提到的,你应该遍历每一张海报进行点击。但是,在循环内部,您必须确定应用程序后退按钮或浏览器后退按钮才能返回上一页。

但是,请注意,一旦您返回上一页,由于html重新加载,您使用find_elements抓取的元素可能无效或过时。因此,您可能希望在循环内再次找到相同的元素以使程序正常工作