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
Python Selenium:Chrome无头设置不适用于;WebDriverWait“;_Python_Selenium_Xpath_Css Selectors_Webdriver - Fatal编程技术网

Python Selenium:Chrome无头设置不适用于;WebDriverWait“;

Python Selenium:Chrome无头设置不适用于;WebDriverWait“;,python,selenium,xpath,css-selectors,webdriver,Python,Selenium,Xpath,Css Selectors,Webdriver,以下代码通过real browser,但不通过headless chrome while True: try: #Explicitly wait print("Try4") WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "00BC0000008hfCI_listSelect"))) pri

以下代码通过real browser,但不通过headless chrome

 while True:
    try:
        #Explicitly wait
        print("Try4")
        WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "00BC0000008hfCI_listSelect")))
        print("Try5")
        ##Locate the select box
        s = driver.find_element_by_id("00BC0000008hfCI_listSelect")
        ##Unassigned queue
        Select(s).select_by_value("00BC0000008hqG8")
        time.sleep(1)
    except TimeoutException :
        print("Wrong!")
        break
结果将是:

Try4
Wrong!
似乎无头铬合金找不到元素。它与Chrome浏览器配合得很好。我的Selenium版本是3.14.0

HTML将类似于:

<div class="topNav primaryPalette" id="00BC0000008hfCI_topNav"><div class="controls"><img src="/img/s.gif" alt="Case" class="pageTitleIcon" title="Case">
<select class="title" id="00BC0000008hfCI_listSelect" name="fcf" onchange="ListViewport.instances['00BC0000008hfCI'].showFeedOrListView(this.options[this.selectedIndex].value)" title="View:"><option value="00BC0000009AFei">All Open Casa Cases</option>
    <option value="00B800000063tb2">All Open Cases</option>
    <option value="00B1A000009ZCok">Channel Upgrade Cases CCLTD</option>
    <option value="00B1A000009VKSg">Channel Upgrade Queue</option>
    <option value="00BC00000099n8S">China team's cases</option>
    <option value="00BC00000097nXg">Delete Queue</option>
    <option value="00BC00000097FPw">Handoff Case Queue</option>
    <option value="00B0y000009vcEI">Maintenance Windows Due Today</option>
    <option value="00B1A000009LY1L">mark r upgrade</option>
    <option value="00B1A000009V2x7">My close case</option>
    <option value="00BC000000976jF">My Open Cases</option>
    <option value="00B0y000009g0J9">My Open Cases - Final Solution Provided</option>
    <option value="00BC0000008hfCI" selected="selected">New Cases Created Today</option>
    <option value="00B0y000009vWOH">New Cases Created Today All</option>
    <option value="00B800000063tb0">Recently Viewed Cases</option>
    <option value="00BC00000099gHm">Stale Case View</option>
    <option value="00BC0000008hqG8">Unassigned Case Queue</option>
    </select><div class="filterLinks" id="00BC0000008hfCI_filterLinks"><a href="/ui/list/FilterEditPage?id=00BC0000008hfCI&amp;retURL=%2F500%3Ffcf%3D00BC0000008hfCI%26rolodexIndex%3D-1%26page%3D1">Clone</a> | <a id="create-new-view" href="/ui/list/FilterEditPage?ftype=t&amp;retURL=%2F500%3Ffcf%3D00BC0000008hfCI%26rolodexIndex%3D-1%26page%3D1">Create New View</a></div><span class="divisionLabel" id="00BC0000008hfCI_divisionLabel"></span><div class="topNavTab" id="00BC0000008hfCI_topNavTab"><div class="toggleButton" id="00BC0000008hfCI_toggleButton"><span class="listToggle chatterListToggle selected"><a href="javascript:void(0);" class="toggleLink" onclick="ListViewport.instances['00BC0000008hfCI'].toggleFeedListView(false)" title="View List - Selected"><span class="toggleIcon listIcon"></span><span class="linkText">List</span></a></span><span class="chatterListToggle chatterToggle clickable" id="ext-gen3"><a href="javascript:void(0);" class="toggleLink" onclick="ListViewport.instances['00BC0000008hfCI'].toggleFeedListView(true)" title="View Feed"><span class="toggleIcon chatterIcon"></span><span class="linkText">Feed</span></a></span></div><img src="/img/s.gif" alt="" class="printerIconDisabled" id="00BC0000008hfCI_printLinkDisabled" style="display: none" title="Printable view is not available for feeds."><a href="javascript:printWin('/500/x?fcf=00BC0000008hfCI&amp;rolodexIndex=-1&amp;page=1')" id="00BC0000008hfCI_printLink" style="" title="Printable View (New Window)"><img src="/img/s.gif" alt="Printable View (New Window)" class="printerIcon" onblur="this.className = 'printerIcon';" onfocus="this.className = 'printerIconOn';" onmouseout="this.className = 'printerIcon';this.className = 'printerIcon';" onmouseover="this.className = 'printerIconOn';this.className = 'printerIconOn';" title="Printable View (New Window)"></a><a href="javascript:openPopupFocusEscapePounds(%27https://login.salesforce.com/services/auth/sso/00D30000000XsfGEAS/HTAuthProvider?startURL=%252Fapex%252Fhtdoor%253Floc%253Dhelp%2526target%253Dcases_view.htm%2526section%253DCases%2526language%253Den_US%2526release%253D214.17.3%2526instance%253DNA66&amp;site=https%3A%2F%2Fhelp.salesforce.com&amp;showSplash=true%27, %27Help%27, 1024, 768, %27width=1024,height=768,resizable=yes,toolbar=yes,status=yes,scrollbars=yes,menubar=yes,directories=no,location=yes,dependant=no%27, false, false);" title="Help for this Page (New Window)"><img src="/img/s.gif" alt="Help for this Page (New Window)" class="helpIcon" title="Help for this Page (New Window)"></a></div><div class="clearingBox"></div></div></div>

所有打开的Casa箱
所有未结案件
渠道升级案例有限公司
通道升级队列
中国队的案例
删除队列
切换案例队列
今天到期的维护窗口
mark r升级
我的结案
我的未决案件
我的开放案例-提供最终解决方案
今日新增个案
今天创造的新案例
最近查看的案例
陈旧案例视图
未分配案例队列
| 
我试了两种方法,但都没有用。 及

你能帮忙吗? 提前感谢。

根据您共享的HTML和您的代码试用,您需要使用方法
presence\u of_element\u located()
而不是使用expected conditions方法
presence\u of_element\u located()
,您可以使用以下任一解决方案:

  • CSS\u选择器

    WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "select.title[name='fcf'][id$='_listSelect']")))
    
  • XPATH

    WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//select[@class='title' and @name='fcf'][contains(@id,'_listSelect')]")))
    
注意:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

如何使用
WebDriverWait
在Py Selenium中无头运行,以供任何寻求帮助的人使用

from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")

driver = webdriver.Chrome(options=chrome_options). 
WebDriverWait(driver, ...)

options
关键字过去是
chrome\u options

Selenium-Draver如何与WebDriver结合使用当元素根本不存在时如何定位元素的存在?@DebanjanB它是代码的一部分。它应该始终存在于页面中,否则它将具有timeoutexception并中断循环。我已经导入了webdriver。但我想你的定位策略有点不对劲。你能用相关的HTML更新这个问题吗?@DebanjanB我更新了我的问题。该代码实际上可以在没有“headless”设置的情况下工作。我想可能与无头角色有关。你好,谢谢你检查这个问题。我仍然像以前一样犯同样的错误。它与真正的浏览器配合得很好。