Нажмите На Элемент, У Которого Есть «x-onclick» с Python Selenium

#python #selenium

Вопрос:

Я пытаюсь использовать selenium, чтобы щелкнуть по элементу со x-onclick свойством not onclick . Скриншот этого

Я использую XPath этого элемента, чтобы щелкнуть по нему. Это те методы, которые я пробовал:

driver.execute_script("arguments[0].click();", element)

element.click()

но это не работает. Я был бы рад, если бы кто-нибудь мог подсказать мне решение.

Комментарии:

1. Можете ли вы нажать на элемент вручную?

2. да, я могу нажать на него

3. Можете ли вы показать свою команду selenium, где вы размещаете этот элемент с помощью XPath, и ссылку на эту конкретную страницу на eductin.com сайт?

4. Пророк это ссылка , по которой я могу нажать i am not a robot button , но после нее я не могу нажать на кнопку «Создать» после ожидания

Ответ №1:

Когда ты попробовал это

 driver.execute_script("arguments[0].click();", element)
 

element это web element . Я не знаю, определили ли вы это или нет. Если не определено, то вы, должно быть, получили ошибку во время компиляции.

В любом случае, мне кажется, что это приложение на угловой основе. Поэтому я бы попробовал использовать приведенный ниже код. :

Есть 4 способа щелкнуть в Selenium.

Я буду использовать это xpath

 //a[@id='generater' and @x-onclick]
 

Пробная версия кода 1 :

 time.sleep(5)
driver.find_element_by_xpath("//a[@id='generater' and @x-onclick]").click()
 

Пробная версия кода 2 :

 WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@id='generater' and @x-onclick]"))).click()
 

Пробная версия кода 3 :

 time.sleep(5)
button = driver.find_element_by_xpath("//a[@id='generater' and @x-onclick]")
driver.execute_script("arguments[0].click();", button)
 

Испытание кода 4 :

 time.sleep(5)
button = driver.find_element_by_xpath("//a[@id='generater' and @x-onclick]")
ActionChains(driver).move_to_element(button).click().perform()
 

Импорт :

 from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
 

Комментарии:

1. Спасибо! Написание XPath с помощью @x-onclick сработало!!!

Ответ №2:

 Have you tried to click by creating xpath by using tag 'a' and 'id' by using simple selenium webdriver click method.

    ele = driver.find_element_by_xpath("//a[@id='generater']")
    ele.click()

    or

    driver.find_element_by_xpath("//a[@id='generater']").click()  



if above xpath is unique then it should work else use javascript for clicking on above element 'ele'.