完成循环后,再次需要在python中运行相同的循环

时间:2020-06-15 13:45:45

标签: python selenium for-loop webdriver

for element in driver.find_elements_by_xpath('.//span[@data-bind = "text: $salableQuantityData.qty"]'):
    elem = element.text
    stock = int(elem)
    if stock < 0 :
        print(stock)

在此循环之后,必须再次单击此driver.find_element_by_xpath('.//button[@class="action-next"]').click(),然后继续相同的循环。

注意:网络表格有5个分页,每个页面都有几个负值,我正尝试从所有页面获取负值。

2 个答案:

答案 0 :(得分:1)

只是一个简单的函数包装,并在每次需要时调用它,如果我理解正确,则需要单击某种“下一页”按钮并继续,对吧?

def some_work():

    for element in driver.find_elements_by_xpath('.//span[@data-bind = "text: $salableQuantityData.qty"]'):
        elem = element.text
        stock = int(elem)
        if stock < 0 :
           print(stock)

    driver.find_element_by_xpath('.//button[@class="action-next"]').click()


some_work()

或仅嵌套在for / while循环中。为什么不?

尝试此操作以查找所有页面,直到未找到“ QuantityData”或“ action-next”为止。第一次见到硒,但他们的文档建议使用'NoSuchElementException'。

from selenium.common.exceptions import NoSuchElementException

while True:
    try:
        some_work()
    except NoSuchElementException:
        break

答案 1 :(得分:1)

如果我正确理解,您将需要一个功能。当您需要多次执行相同的操作时,会很整洁。