【发布时间】:2020-08-23 07:49:07
【问题描述】:
我正在尝试从此 HTML 的下拉列表中选择 EU Odds:
<div id="user-header-r1">
<div>
<a class="user-header-fakeselect" onclick="ElementSelect.expand( 'user-header-oddsformat' , 'user-header-oddsformat-expander' )" id="user-header-oddsformat-expander"><span>UK Odds</span></a>
<ul class="user-header-fakeselect-options hidden" id="user-header-oddsformat">
<li><a href="#" onclick="changeOddsFormat(1); return false;"><span>EU Odds</span></a></li>
<li><a href="#" onclick="changeOddsFormat(2); return false;"><span>UK Odds</span></a></li>
<li><a href="#" onclick="changeOddsFormat(3); return false;"><span>US Odds</span></a></li>
<li><a href="#" onclick="changeOddsFormat(4); return false;"><span>HK Odds</span></a></li>
<li><a href="#" onclick="changeOddsFormat(5); return false;"><span>MA Odds</span></a></li>
<li><a href="#" onclick="changeOddsFormat(6); return false;"><span>IN Odds</span></a></li>
</ul>
</div>
<div><label>Time:</label></div>
<div>
<a href="#" class="user-header-fakeselect" onclick="op.showHideTimeZone();ElementSelect.expand( 'user-header-timezone' , 'user-header-timezone-expander' , null , function(){op.hideTimeZone()} );this.blur();return false;" id="user-header-timezone-expander"><span>23 Aug 08:33, GMT +1</span></a>
</div>
</div>
我已尝试使用以下代码关注答案here:
target = 'EU Odds'
self.driver.find_element_by_css_selector("user-header-r1 > ul").find_element_by_xpath("./li[.="+target+"]").click()
但我收到以下错误:
Exception has occurred: NoSuchElementException
Message: no such element: Unable to locate element: {"method":"css selector","selector":"user-header-r1 > ul"}
我哪里错了?
【问题讨论】:
-
user-header-r1是一个 id,而不是 CSS 类,您正在尝试通过 CSS 选择器查找元素,该选择器不存在。尝试通过id查找 -
谢谢。试过这个:
self.driver.find_element_by_id("user-header-r1 > ul").find_element_by_xpath("./li[.="+target+"]").click()但得到了Unable to locate element: {"method":"css selector","selector":"[id="user-header-r1 > ul"]"}。正如你所知道的,我对刮擦真的很陌生,所以我可能需要一些小步骤!
标签: python selenium xpath css-selectors webdriverwait