У меня проблема с использованием (EC.presence_of_element_located(By.class, «»))

#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. Извините, я сбил вас с толку. Они импортируют этот модуль. Еще раз спасибо вам