Как отправить значения в раскрывающиеся списки, чей тип ввода текста вместо выбора? - PullRequest
0 голосов
/ 06 октября 2019

Я пытался автоматизировать автоматизацию создания заявки для сайта verizon https://myverizonenterprise.verizon.com/vec/public/quicktasks/repairs/index.html#/repairsqf/tickets/create

На этом сайте я хочу отправить значение в раскрывающееся поле поля состояния. Но, к сожалению, решение не работает для меня. Я попробовал приведенный ниже код на python, но это не сработало.

state = driver.find_element_by_xpath("//*[@id='combobox-1062-trigger-picker']").click()
driver.find_element_by_xpath("//*[contains(text(), 'TX')]").click()

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

state = driver.find_element_by_xpath("//*[@id='combobox-1062-trigger-picker']")
state.send_keys('TX')

Даже это решение не сработало для меня.

Кто-нибудь может дать мне рабочее решение?

Спасибо, Маллесхаппа Тели

1 Ответ

0 голосов
/ 06 октября 2019

Применить неявное ожидание или свободное ожидание в вашем коде, где это требуется

Неявное ожидание

driver.implicitly_wait(15)

Явное ожидание

WebDriverWait(driver, 3).until(EC.presence_of_element_located((By.XPATH, "//li[text()='TX']"))) 

Пример кода:

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
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome('/usr/local/bin/chromedriver')  # Optional argument, if not specified will search path.
driver.implicitly_wait(15) # implicit wait

driver.get("https://myverizonenterprise.verizon.com/vec/public/quicktasks/repairs/index.html#/repairsqf/tickets/create");


driver.find_element_by_xpath("//input[@name='state']").click()
#WebDriverWait(driver, 3).until(EC.presence_of_element_located((By.XPATH, "//li[text()='TX']"))) #Wait for specific element 
ActionChains(driver).move_to_element(driver.find_element_by_xpath("//li[text()='TX']")).perform()
driver.find_element_by_xpath("//li[text()='TX']").click()


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