vha*_*ham 4 html python selenium selenium-webdriver
我正在努力创建一个while循环,只要网站上存在特定元素,该循环就会运行。我目前拥有的解决方案绝不是我引以为傲的解决方案,但它确实有效。不过,我非常感谢有关如何更改以下内容的一些建议:
def spider():
    url = '/sf/'
    driver.get()
    while True:
        try:
            unique_element = driver.find_element_by_class_name("uniqueclass")
            do_something()
        except NoSuchElementException:
            print_data_to_file(entries)
            break
    do_something_else()
正如您所看到的,我在循环中做的第一件事while是检查仅存在于包含我感兴趣的数据的页面上的唯一元素。因此,当我到达没有此信息的页面时,我会得到和NoSuchElementException打破。
我如何才能实现上述目标而无需制作while True?
driver.find_elements不会抛出任何错误。如果返回的列表为空,则意味着没有更多元素   
def spider():
    url = '/sf/'
    driver.get()
    while len(driver.find_elements_by_class_name("uniqueclass")) > 0:
        do_something()
do_something_else()
您还可以使用带有预期条件staleness_of的显式等待,但是您将无法执行do_something()并且它用于较短的等待期。
| 归档时间: | 
 | 
| 查看次数: | 1866 次 | 
| 最近记录: |