【发布时间】:2019-11-09 04:15:43
【问题描述】:
我正在尝试从展开页面记录的下拉菜单中选择一个选项。当我没有无头运行时,它工作正常。当我在无头模式下运行时,页面等待查找元素时出现超时异常错误。
<select name="ctl00$ContentPlaceHolder1$uxTabContracts$uxTabPanelWaintingApproval$uxGridList$ctl05$uxUCGridViewPagingTemplate$uxDropDownListPageSize" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$uxTabContracts$uxTabPanelWaintingApproval$uxGridList$ctl05$uxUCGridViewPagingTemplate$uxDropDownListPageSize\',\'\')', 0)" id="ContentPlaceHolder1_uxTabContracts_uxTabPanelWaintingApproval_uxGridList_uxUCGridViewPagingTemplate_uxDropDownListPageSize">
<option value="5">5</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
<option value="50">50</option>
<option value="100">100</option>
<option value="250">250</option>
<option value="500">500</option>
<option selected="selected" value="1000">1000</option>
</select>
我尝试过使用 XPATH、ID 和名称。
wait.until(EC.presence_of_element_located((By.XPATH,'//*[@id="ContentPlaceHolder1_uxTabContracts_uxTabPanelWaintingApproval_uxGridList_uxUCGridViewPagingTemplate_uxDropDownListPageSize"]'))) # wait for option to expand page
ExpandRecords = Select(chrome.find_element_by_xpath('//*[@id="ContentPlaceHolder1_uxTabContracts_uxTabPanelWaintingApproval_uxGridList_uxUCGridViewPagingTemplate_uxDropDownListPageSize"]')) # define element to expand page
ExpandRecords.select_by_value('1000') # select page size option from dropdown
预期结果是选择“1000”条记录,页面将展开并移动到下一段代码,它将选择我需要的必要记录。发生的事没什么。我得到一个超时异常。
line 289, in Import_To_CRM
wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="ContentPlaceHolder1_uxTabContracts_uxTabPanelWaintingApproval_uxGridList_uxUCGridViewPagingTemplate_uxDropDownListPageSize"]'))) # wait for option to expand page
selenium.common.exceptions.TimeoutException: Message:
【问题讨论】:
-
你不能只运行一些 javascript 来直接设置值吗?所以
document.getElementById("selectionid").value = 1000 -
您使用的是什么无头浏览器驱动程序? PhantomJS?
-
@JohnGordon - 我使用的是 Chromedriver 版本 78。运行 Selenium,用 python 编写。
-
@WilliamBright - 不知道怎么做,但我会看看是否能找到尝试的方法。
-
如果您使用的是 Chrome,那它是如何无头的?我觉得我错过了什么。
标签: python selenium selenium-webdriver selenium-chromedriver