Установите флажок на странице HTML с Python 3.7 - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь установить флажок, который появляется на странице HTML с Python 3.7 и Selenium. Конечная цель, очевидно, состоит в том, чтобы манипулировать ими, но я даже не могу выбрать ее правильно. URL следующий:

https://eurexmargins.prod.dbgservice.com/

До этого поста я внимательно прочитал соответствующую страницу , но предлагаемые решения не не работает в моем случае (я получаю исключение ElementClickInterceptedException).

Вот мой код:

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

browser = webdriver.Chrome('C:\Program Files\chromedriver_win32\chromedriver.exe')

MAX_TIMEOUT = 20

def get_element(by_arg, by_method=By.ID):
    return WebDriverWait(browser, MAX_TIMEOUT).until(
           EC.presence_of_element_located((by_method, by_arg))
       )

browser.switch_to_default_content()

browser.get("https://eurexmargins.prod.dbgservice.com/")


get_element(".//input[@type='checkbox']", By.XPATH).click()


time.sleep(15)
browser.quit()

Спасибо за любую помощь.

1 Ответ

1 голос
/ 20 апреля 2020

Проблема в том, что это не обычный флажок. Ниже приведен рабочий пример.

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

driver = webdriver.Chrome("C:\Program Files\chromedriver_win32\chromedriver.exe")
driver.get("https://eurexmargins.prod.dbgservice.com/terms")

element_toclick = WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.XPATH, "//mat-checkbox[@id='mat-checkbox-1']")))
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

element_toclick.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...