Python Seleniu是一种显示方法

Python Seleniu是一种显示方法,python,selenium,webdriver,Python,Selenium,Webdriver,我希望能够访问else语句,并且在元素未显示时不获取异常 例如: if driver.find_element_by_xpath("/html/body/main/div/article[2]/div[4]/header/div[2]/div/div[3]/a[4]").is_displayed(): print("yeah found it") else: print("not found") 不能对不存在的元素调用is_di

我希望能够访问else语句,并且在元素未显示时不获取异常

例如:

 if driver.find_element_by_xpath("/html/body/main/div/article[2]/div[4]/header/div[2]/div/div[3]/a[4]").is_displayed():
            print("yeah found it")
        else:
            print("not found")

不能对不存在的元素调用is_display()或任何其他属性。is_display()仅当元素存在于DOM中但隐藏或显示时才起作用。您的程序在到达代码检查是否显示之前就失败了。因此,可能的解决办法可能是使用某种try-catch

from selenium.common.exceptions import NoSuchElementException

found = False
while not found:
    try:
        link = driver.find_element_by_xpath(linkAddress)
        found = True
    except NoSuchElementException:
        time.sleep(2)

示例代码取自

我遇到了同一个问题,这个问答模块是游戏规则的改变者。我也对给定的代码进行了调整,以满足我的需要,我相信这与此问题的要求类似:

elementlist = []
found = False
while not found:
    try:
        element_ = browser.find_element_by_xpath("//*[@class='class' and (contains(text(),'Optional-text-contain'))]")
        if element_.is_displayed():
            value = element_.find_element_by_css_selector("*")
            elementlist.append(value.text)
            print("Element: " + value.text)
            found = True
    except NoSuchElementException:
        elementlist.append("N/A")
        print("Element: N/A")
        found = True
这段代码在页面中查找交替元素(有时存在,有时不存在)。如果它存在,它给出它的“值”。如果不是-它将正常继续,同时向列表追加一个“NaN”样式值,以便与axis匹配,以便稍后进行DFing


他再次在这个问题上提供了巨大的帮助。感谢您提出这个问题,并提到它在小调整后对您有效。

我想进入else语句,但是当元素未显示时,我将得到一个异常,而不是打印(“未找到”)我知道没有这样的元素,这就是为什么我希望它打印未找到,或者在其他情况下,我希望它继续测试这不是我所寻找的,我正在寻找一种方法,我可以继续运行测试,而不会出现异常,即使我所寻找的元素未找到。所以,如果找不到元素,跳转到else语句并查看其中的内容以运行我不确定是否正确地跟踪了您。如果找不到想要的元素,你会如何继续运行测试?别介意你的答案很好,我稍微调整了你的代码,现在工作正常了,非常感谢。