Seo*_*ang 2 python selenium selenium-webdriver
我正在做 Python selenium 项目并且有一个问题
EC.presence_of_element_located
Run Code Online (Sandbox Code Playgroud)
看起来Python无法识别它。
这是我的代码:
service = Service("C:\\Users\\jjang\\.wdm\\drivers\\chromedriver\\win32\\96.0.4664.45\\chromedriver.exe")
browser = webdriver.Chrome(service=service)
browser.maximize_window()
browser.get("https://www.google.com")
actions = ActionChains(browser)
actions.send_keys(Keys.TAB * N)
actions.send_keys(Keys.ENTER)
actions.perform()
search_bar = browser.find_element(By.CLASS_NAME, "gLFyf")
search_bar.send_keys("hola")
search_bar.send_keys(Keys.ENTER)
unnecessary = WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.CLASS_NAME,"VjDLd mnr-c g-blk")))
Run Code Online (Sandbox Code Playgroud)
Python 告诉我
NameError:名称“EC”未定义
为什么Python将ES识别为Name?有人可以帮助我吗?
为了使用EC,您需要导入这个
from selenium.webdriver.support import expected_conditions as EC
Run Code Online (Sandbox Code Playgroud)
这应该可以解决这个错误
NameError: name 'EC' is not defined
Run Code Online (Sandbox Code Playgroud)
另外,我看到您正在使用这样的类名VjDLd mnr-c g-blk。
您将得到 NoSuchElement 异常。
请删除空格并改为 CSS 选择器,因为 Selenium 不支持类名空格。
所以而不是
unnecessary = WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.CLASS_NAME,"VjDLd mnr-c g-blk")))
Run Code Online (Sandbox Code Playgroud)
用这个 :
unnecessary = WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR,".VjDLd.mnr-c.g-blk")))
Run Code Online (Sandbox Code Playgroud)
进口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2077 次 |
| 最近记录: |