为什么我不能从 'selenium.webdriver.support.ui' 导入名称 'Web'?

Why can't I import name 'Web' from 'selenium.webdriver.support.ui'?

我正在尝试使用此代码块单击“启动地球”按钮。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Web
from selenium.webdriver.support import expected_conditions as EC
url = 'https://www.google.com/earth/'
driver = webdriver.chrome()
driver.get(url)
wait = WebDriverWait(driver, 10)
launchEarthButton = wait.until(EC.element_to_be_clickable((By.XPATH, '/html/body/header/div/nav[1]/ul[2]/li[2]/a/span/span' ))
launchEarthButton.click()

但是,我收到以下错误消息。怎么了?

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-5-a51783f07755> in <module>
      2 
      3 from selenium.webdriver.common.by import By
----> 4 from selenium.webdriver.support.ui import Web
      5 from selenium.webdriver.support import expected_conditions as EC
      6 from webdriver_manager.chrome import ChromeDriverManager

ImportError: cannot import name 'Web' from 'selenium.webdriver.support.ui' (/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/support/ui.py)

selenium.webdriver.support.ui 中没有名为 Web 的模块。

但是有两 (2) 个条目如下:

from .select import Select  # noqa
from .wait import WebDriverWait  # noqa

解决方案

在您使用 WebDriverWait 的代码块中,因此您需要将 Web 更改为 WebDriverWait , 有效:

from selenium.webdriver.support.ui import WebDriverWait