Как найти элемент с помощью css-селектора для поля даты в Python selenium? - PullRequest
0 голосов
/ 04 июня 2019

У меня проблемы с поиском Selenium в Python для поиска поля даты на веб-сайте. Мне нужно, чтобы он щелкнул 3 раза в этом поле, чтобы выделить существующее значение в этом поле даты начала, а затем отправить ключи для ввода в конкретную дату.

В поле «Проверка даты начала» указано:

<input type="text" mask="valDate" maxlength="10" 
size="12" id="f_2815055" value="4/1/2019" 
desc="Start Date" required="true" class="hasDatepicker">

Я пытался сделать

driver.find_element_by_css_selector(".text[id='f_2815055']").click()

но я получаю сообщение об ошибке: selenium.common.exceptions.NoSuchElementException: Сообщение: невозможно найти элемент с помощью селектора css == .text [id = 'f_2815055']

Я также пытался сделать то же самое, но с class = 'hasDatePicker' и также desc = 'Start Date', но все они дали те же ошибки, что и выше, когда он не может найти элемент с селектором css.

Ответы [ 2 ]

1 голос
/ 04 июня 2019

Индуцирование WebDriverWait и последующий Css Селектор.

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

element=WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"input.hasDatepicker[desc='Start Date']")))
element.click()

РЕДАКТИРОВАНИЕ

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
for i in range(0,3):
 element=WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"input.hasDatepicker[desc='Start Date']")))
 element.click()

ИЛИ

element=WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"input.hasDatepicker[desc='Start Date']")))
    driver.execute_script("arguments[0].click();",element)
    driver.execute_script("arguments[0].click();",element)
    driver.execute_script("arguments[0].click();",element)
0 голосов
/ 04 июня 2019

возможно, используйте find_element_by_id, так как элемент имеет идентификатор, который можно использовать для его определения:

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