【发布时间】:2020-10-16 17:13:02
【问题描述】:
我一直在搜索不同的网站,包括这个网站以寻求解决方案,但还没有运气,我使用 selenium 导航的网站是用 HTML4 编写的,我不确定这是否重要,但确实想包含它.
下面是我目前正在使用的尝试从下拉列表中选择特定选项的特定功能的代码。
program_selection = driver.find_element_by_id('pgmSelectList').click()
for option in program_selection.find_element_by_name('offerVB.currentProgramCode'):
if option.text == 'New Maximum Care (Minimum 5/60 PT Warranty)':
option.click() # select() in earlier versions of webdriver
break
下面是我正在尝试使用的当前 HTML 元素,我也尝试过不使用最后的“.click()”,因为我已经阅读了很多我不需要这样做的地方,但是使用当前代码,我实际上打开了列表,它只是没有选择一个选项,我还尝试向元素发送箭头键以选择某些内容,但我收到一个错误消息,指出该元素没有属性 send_keys。
<select name="offerVB.currentProgramCode" onchange="return isProgramSelected()" class="tableCell" id="pgmSelectList"><option value="" selected="selected">Select</option>
<option value="COMMPLANS:2018-01-03">NEW VEHICLE COMMERCIAL PLANS</option>
<option value="USDCOMMPLN:2016-09-01">USED VEHICLE COMMERCIAL PLANS</option>
<option value="MOPAR75:2012-01-31">MOPAR 'TARGETED' OPTIONS</option>
<option value="RAMADVNTGE:2010-02-01">RAM ADVANTAGE MAXIMUM CARE</option>
<option value="PWRCARE510:2009-10-01">NEW POWERTRAIN CARE (MINIMUM 5/60 PT WARRANTY)</option>
<option value="ADDCARE510:2009-10-01">NEW ADDED CARE PLUS (MINIMUM 5/60 PT WARRANTY)</option>
<option value="MAXCARE510:2009-10-01">NEW MAXIMUM CARE (MINIMUM 5/60 PT WARRANTY)</option>
<option value="MONEYBK510:2009-10-01">MONEY BACK GUARANTEE (MINIMUM 5/60 PT WARRANTY)</option>
<option value="SHRTTRMLSE:2004-11-01">NEW SHORT TERM LEASE / RETAIL OPTIONS</option>
<option value="POPWTN:2004-11-01">PRE OWNED POWERTRAIN CARE PLUS</option>
<option value="POADDED:2004-11-01">PRE OWNED ADDED CARE</option>
<option value="POADDPLUS:2004-11-01">PRE OWNED ADDED CARE PLUS</option>
<option value="POMAX:2004-11-01">PRE OWNED MAXIMUM CARE</option>
<option value="GAPINS:2004-11-01">GAP</option>
<option value="CONVPLNPKG:2012-10-01">CONVENIENCE PLANS AND PACKAGES</option>
<option value="MAINTPLANS:2012-10-01">MAINTENANCE PLANS AND PACKAGES</option>
<option value="LUBEOIL:2004-11-01">LUBE, OIL, OIL FILTER PACKAGES</option>
<option value="BUSNESSLNK:2005-09-01">BUSINESSLINK / SMALL BUSINESS PLANS</option></select>
如何让 selenium 从此列表中选择一个选项?这是我第一次真正使用硒。
编辑:我目前正在尝试此代码:
driver.find_element_by_id("//select//*[@id='pgmSelectList']/option[text()='MAXCARE510:2009-10-01']").click()
我收到此错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="//select//*[@id='pgmSelectList']/option[text()='MAXCARE510:2009-10-01']"]"}
(Session info: chrome=86.0.4240.75)
【问题讨论】:
标签: html python-3.x selenium