Selenium webdriver单击分页页面并检查元素是否存在

时间:2014-05-06 12:47:58

标签: python-2.7 selenium webdriver

我正在尝试点击网站上的分页页面,并且在每个加载的页面上我需要检查是否存在上一步中创建的元素,因为页面的分配是动态的我不会知道在创建哪个页面之前会显示新创建的元素,所以需要检查所有元素直到找到它。

分页的代码是

    <div class="pagination" style="display: block; visibility: visible;"><ol><li class="current first"><a href="#">1</a></li><li><a href="#">2</a></li><li class="last"><a href="#">3</a></li></ol></div>

也可能在页面中有超过3页,我意识到我需要一个for或while循环,但是当我尝试读取存在的元素数时,我会遇到错误。

谢谢

1 个答案:

答案 0 :(得分:1)

使用find_elements_by_xpath()

for page_link in driver.find_elements_by_xpath('//div[@class="pagination"]/ol/li/a'):
    print "page number: %s" % page_link.text
    page_link.click()
    # parse the page and find the element 

另一种可能的解决方案是获取最大页码并迭代整数范围直到最大值:

max_page_element = driver.find_element_by_xpath('//div[@class="pagination"]/ol/li[@class="last"]/a')
max_page = int(max_page_element.text)
for page in xrange(1, max_page + 1):
    print "page number: %s" % page
    page_link = driver.find_element_by_xpath('//div[@class="pagination"]/ol/li/a[text()="%s"]' % page)
    page_link.click()
    # parse the page and find the element