我正在尝试实现自动化,但是在尝试从下拉菜单中进行选择时遇到了一个问题。我可以启动Chrome会话并登录该页面,但是当我到达该页面时,似乎好像没有正确找到该元素。
下拉菜单:LINKNOLONGERAVAILABLE
下拉菜单的HTML代码:LINKNOLONGERAVAILABLE
我的网络驱动程序代码:
s1 = Select(driver.find_element_by_id("X"))
s1.select_by_value("X")
不确定是否要选择正确的ID或是否需要实现其他功能(如等待?)。我已经尝试过按名称和ID尝试使用xpath,css选择器,但无济于事。
感谢您的所有帮助!
编辑:元素被包裹在一个iFrame中,我所要做的就是切换框架,它起作用了:D
答案 0 :(得分:1)
如果您想尝试使用waits,可以遵循以下代码:
wait = WebDriverWait(driver, 10)
drop_down= wait.until(EC.visibility_of((By.CSS_SELECTOR, "select.PSDROPDOWNLIST[name^='TL_RPTD_TIME_PUNCH_TYPE'][id^='TL_RPTD_TIME_PUNCH_TYPE']")))
select = Select(drop_down)
# select by visible text
select.select_by_visible_text('Transfer')
我不确定ID是否唯一,因此,我用 ID,名称和类名构造了一个CSS选择器。
您将必须导入以下内容:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
希望会有所帮助。