我试图自动化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')
即使这个解决方案对我也不起作用。
任何人都可以为我提供可行的解决方案吗?
谢谢 Malleshappa Teli
在代码中应用隐式等待或流畅等待
隐式等待
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()