Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Selenium选择下拉选项。无头镀铬。python_Python_Selenium_Selenium Webdriver_Selenium Chromedriver - Fatal编程技术网

使用Selenium选择下拉选项。无头镀铬。python

使用Selenium选择下拉选项。无头镀铬。python,python,selenium,selenium-webdriver,selenium-chromedriver,Python,Selenium,Selenium Webdriver,Selenium Chromedriver,我正在尝试从下拉菜单中选择一个选项,以展开页面上的记录。当我没有无头跑步时,它工作正常。当我在headless中运行时,当页面等待查找元素时,会出现超时异常错误 <select name="ctl00$ContentPlaceHolder1$uxTabContracts$uxTabPanelWaintingApproval$uxGridList$ctl05$uxUCGridViewPagingTemplate$uxDropDownListPageSize" onchange="javasc

我正在尝试从下拉菜单中选择一个选项,以展开页面上的记录。当我没有无头跑步时,它工作正常。当我在headless中运行时,当页面等待查找元素时,会出现超时异常错误

<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>
预期结果是选择“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:

对于
headless
浏览器,您必须将窗口大小设置为在事件发生时触发。因为没有窗口大小,headless浏览器无法识别在何处单击

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('window-size=1920x1080');
如果上述选项不起作用,则使用检查网站是否在无头模式下阻塞

print(driver.page_source)

你不能运行一些javascript来直接设置值吗?所以
document.getElementById(“selectionid”).value=1000
您使用的是什么无头浏览器驱动程序?幻影?@JohnGordon-我正在使用Chromedriver版本78。运行Selenium,用python编写。@WilliamBright-不确定如何运行,但我会看看是否能找到一种方法来尝试。如果您使用的是Chrome,这是如何实现的?我觉得我错过了什么。这解决了我的问题。谢谢你的意见,我没有意识到无头运行会改变窗口大小。
print(driver.page_source)