Не можете нажать на эту кнопку Selen Webdriver python - PullRequest
1 голос
/ 16 января 2020

Я пытаюсь нажать на эту кнопку часами, никоим образом не сделать это. Я пытался найти его всеми способами XPATH ex c .. Кнопка находится внутри iframe "iframeGioco", я тоже переключился на него, но все равно ничего.

Пожалуйста, помогите мне.

Это html источник:

enter image description here

Мне нужно нажать на выделенный элемент div, который является кнопкой или в следующем элементе div содержится «OK Msgstr "*

Я сделал много сценариев с селеном, но эту кнопку действительно сложно щелкнуть. Я бы связал страницу, но не могу, потому что у вас должна быть учетная запись eurobet, чтобы увидеть эту страницу.

Спасибо.

пример моих попыток:

browser.switch_to_frame(browser.find_element(By.XPATH,'//iframe[@id="iframeGioco"]'))

browser.find_element(By.XPATH,"//div[@class='rounded-corners no-highlight ftl-error-buttonise absolute-horz-center']").click()

NB: странно, что я не получаю ошибку, как "NOSUCHELEMENT", я ничего не получаю, так что я думаю, что элемент найден, но щелчок не работает по какой-то причине.

NEED TO CLICK

КНОПКА, ЧТОБЫ ЩЕЛКНУТЬ, - КНОПКА «ОК» В IMG.

Ответы [ 2 ]

2 голосов
/ 16 января 2020

Вы можете попробовать нажать JS, так как он работает по-другому.

Вебдрайвер работает так же, как мы / пользователь делаем вручную. Если элемент не активирован, даже пользователь может видеть его на странице, он не будет щелкать, пока JS является клиентским скриптом и взаимодействует напрямую с браузером (с помощью встроенного интерпретатора)

Пожалуйста, попробуйте следующий код.

driver.execute_script("arguments[0].click();", webElement)
2 голосов
/ 16 января 2020

Чтобы щелкнуть по элементу OK div, который находится внутри iframe

Induce WebDriverWait () и frame_to_be_available_and_switch_to_it ()

Induce WebDriverWait () и element_to_be_clickable () и следующие Xpath

WebDriverWait(browser,20).until(EC.frame_to_be_available_and_switch_to_it((By.ID,"iframeGioco")))
WebDriverWait(browser,20).until(EC.element_to_be_clickable((By.XPATH,"//div[text()='OK']"))).click()

ИЛИ

WebDriverWait(browser,20).until(EC.frame_to_be_available_and_switch_to_it((By.ID,"iframeGioco")))
WebDriverWait(browser,20).until(EC.element_to_be_clickable((By.XPATH,"//div[contains(.,'OK')]"))).click()

Вам необходимо добавить следующие библиотеки.

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

ОБНОВЛЕНИЕ

Побудить Javascript исполнителя нажать.

WebDriverWait(browser,20).until(EC.frame_to_be_available_and_switch_to_it((By.ID,"iframeGioco")))
browser.execute_script("arguments[0].click();", WebDriverWait(browser,20).until(EC.presence_of_element_located((By.XPATH,"//div[contains(.,'OK')]"))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...