#python #selenium #selenium-webdriver
Вопрос:
Я занимаюсь проектом Python selenium и у меня проблема с
EC.presence_of_element_located
Похоже, что 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")))
И Питон говорит мне
Ошибка имени: имя » EC » не определено
Почему Python идентифицирует ES как имя? Есть ли кто-нибудь, кто может мне помочь?
Ответ №1:
Чтобы использовать EC, Вам необходимо импортировать это
from selenium.webdriver.support import expected_conditions as EC
Это должно исправить эту ошибку
NameError: name 'EC' is not defined
Кроме того, я вижу, что Вы используете такое название класса 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")))
Используйте это :
unnecessary = WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR,".VjDLd.mnr-c.g-blk")))
Импорт:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
Комментарии:
1. Спасибо за ваш ответ. Но теперь у меня есть еще один вопрос. Прежде чем я опубликовал этот вопрос, я нашел другие сообщения. И никто не импортировал ожидаемые условия. Почему у меня эта проблема??
2. Можете ли вы поделиться ссылкой на этот пост ? Это лучшие методы импорта.
3. Извините, я сбил вас с толку. Они импортируют этот модуль. Еще раз спасибо вам