简体   繁体   中英

Python NameError: name 'ElementNotVisibleException' is not defined with Selenium

Why am I receiving this error using Python and Selenium and how can I fix it?

NameError: name 'ElementNotVisibleException' is not defined

It occurs when running the following script from this tutorial http://www.marinamele.com/selenium-tutorial-web-scraping-with-selenium-and-python in Python3.5

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException


def init_driver():
    driver = webdriver.Firefox()
    driver.wait = WebDriverWait(driver, 5)
    return driver


def lookup(driver, query):
    driver.get("http://www.google.com")
    try:
        box = driver.wait.until(EC.presence_of_element_located(
            (By.NAME, "q")))
        button = driver.wait.until(EC.element_to_be_clickable(
            (By.NAME, "btnK")))
        box.send_keys(query)
        try:
            button.click()
        except ElementNotVisibleException:
            button = driver.wait.until(EC.visibility_of_element_located(
                (By.NAME, "btnG")))
            button.click()
    except TimeoutException:
        print("Box or Button not found in google.com")


if __name__ == "__main__":
    driver = init_driver()
    lookup(driver, "Selenium")
    time.sleep(5)
    driver.quit()

I've looked around the web for answers and while I've found similar questions, I haven't found answers that have helped me resolve this issue.

添加下面的import语句将避免提到的NameError

from selenium.common.exceptions import ElementNotVisibleException

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM