Согласно сведениям о конфигурации (в вашем комментарии обновлении) ...
(Session info: chrome=69.0.3497.100)
(Driver info: chromedriver=2.37.543627 (63642262d9fb93fb4ab52398be4286d844092a5e),platform=Windows NT 6.3.9600 x86_64)
Ваша основная проблема - несовместимость между версиями двоичных файловвы используете следующее:
- Вы используете chromedriver = 2,37
- Примечания к выпуску chromedriver = 2,37 четко упоминается следующее:
Поддержка Chrome v64-66
- Вы используете хром = 69,0
- Примечания к выпуску ChromeDriver v2.42 явно упоминает следующее:
Поддержка Chromev68-70
Таким образом, существует явное несоответствие между ChromeDriver v2.37 и Chrome Browser v69.0
Решение
- Обновление ChromeDriver до текущей ChromeDriver v2.42 уровень.
- Сохранить Chrome версия между Chrome v68-70 уровней.( согласно примечаниям к выпуску ChromeDriver v2.42 )
- Очистить ваше Рабочее пространство проекта через IDE и Перестройте ваш проект только с необходимыми зависимостями.
- Если ваша базовая Веб-клиент версия устарела, то удалите ее через Revo Uninstaller и установите последнюю версию GA и выпущенную версию веб-клиента .
Используйте следующую строку кода для вызова click()
для нужного элемента:
driver.find_element_by_xpath("//button[@class='gprospect_linkedin_button gprospect_linkedin_button_style_medium'][normalize-space()='Get email']").click()
Выполните @Test
.
Обновите A
Поскольку вы все еще видите NoSuchElementException
после двоичного файланеобходимо обновить WebDriverWait , чтобы требуемый элемент был активным для клика следующим образом:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
# other lines of code
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='gprospect_linkedin_button gprospect_linkedin_button_style_medium'][normalize-space()='Get email']"))).click()
Обновление B
Как выВы все еще не можете click()
, вам нужно использовать метод execute_script()
следующим образом:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
# other lines of code
myElement = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='gprospect_linkedin_button gprospect_linkedin_button_style_medium'][normalize-space()='Get email']")))
driver.execute_script("arguments[0].click();", myElement)