在Python上循环if-else。使用Selenium检查类名

2024-09-30 04:40:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个预约系统,我必须等到链接可用。如果此链接可用,请单击它。如果不是前后移动(因为页面不允许我重新加载)。再检查一次直到有货。在

while True:

    if driver.find_element_by_class_name("linkButton"):

            #do somthing



    else:

             driver.back()
             driver.forward()
             #check again.

程序不会抛出任何错误,但当我强制iffalse时,else什么也不做。在

我不能用不可用的链接来检查它,因为在页面中直到可用为止,这就是为什么我强制将if设置为false


Tags: namefalsetruebyif链接系统driver
1条回答
网友
1楼 · 发布于 2024-09-30 04:40:17

首先,find_element_*()方法不返回true/false,它们要么返回一个WebElement实例(这是真的),要么抛出一个NoSuchElementException异常(或其他异常)。在

存在性检查通常通过find_elements_*()方法完成,如果找不到元素,则返回一个空列表,这是错误的:

while True:
    if driver.find_elements_by_class_name("linkButton"):
        # do something
    else:
        driver.refresh()

请注意,我认为您只是想refresh()页面,而不是前后移动。在

而且,您还应该在两次尝试之间添加一些时间延迟。在

相关问题 更多 >

    热门问题