#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'.