我试图从这个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"}
我哪里做错了
要选择文本为EU赔率的元素,需要为
element_to_be_clickable()
归纳WebDriverWait,并且可以使用以下Locator Strategies之一:使用
CSS_SELECTOR
:使用
XPATH
:注意:您必须添加以下导入:
展开下拉列表并使
li
元素可见WebDriverWait
将等待所需的元素条件,在您的示例中,它是一个可见性。要使用xpath按文本获取元素,需要在文本中使用配额//li[.='Some Text']
:您的元素目标具有
hidden
值的属性:因此,我认为您需要先从另一个元素触发,然后再攻击元素目标,请尝试以下代码:
相关问题 更多 >
编程相关推荐