python - Python-Selenium:Chrome 无头设置不适用于“WebDriverWait”
问题描述
以下代码通过真正的浏览器传递,但没有通过无头 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!
貌似headless chrome是找不到元素的。它适用于 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&retURL=%2F500%3Ffcf%3D00BC0000008hfCI%26rolodexIndex%3D-1%26page%3D1">Clone</a> | <a id="create-new-view" href="/ui/list/FilterEditPage?ftype=t&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&rolodexIndex=-1&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&site=https%3A%2F%2Fhelp.salesforce.com&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>
我尝试了这两种方法,但没有帮助。 chrome_options.add_argument('window-size=1920,1080')和能力 = DesiredCapabilities.CHROME.copy()
你能帮忙吗?提前致谢。
解决方案
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_options
推荐阅读
- forms - Microsoft Access 中是否有 V-lookup 效果?
- python - 从 pipenv 目录生成 python 可执行文件
- nativescript-angular - 在 iOS 的 nativescript 中,我可以更改 webview 浏览器客户端吗
- windows - 增强/扩展对话框时降低资源文件增长速度的方法
- javascript - TableSorter 2.0 未检测到解析器
- here-api - 来自自由格式地址或部分地址查找 api 的纬度经度
- python - Python隐藏控制台窗口
- r - 如何在 R 中将数据帧与顺序行名结合起来?
- asp.net-mvc - 如何在 LINQ 中的 select new 语句中将字符串转换为整数?
- android - Android 底页不响应触摸并且不滚动