用Chromedriver加载一个站点,并尝试单击基于文本的链接。你知道吗
这是我要查找的链接的站点代码:
<div class="league_check" id="hr_selection_18359391" onclick="HorseRacingBranchWindow.showEvent(18359391);" title="Odds Available">
<span class="race-status">
<img src="/i/none_v.gif" width="12" height="12" onclick="HorseRacingBranchWindow.toggleSelection(18359391); cancelBubble(event);">
</span>
14:10 *
</div>
我正在努力:
justtime = "14:10"
link = Driver.find_element_by_partial_link_text(justtime)
link.click
我正在手动监视浏览器,它在我的代码启动之前加载了数据(包括链接),所以它不像不在那里。你知道吗
它抛出了一个没有这种元素的异常。但我很难理解为什么。我一直在使用类似的代码,我唯一能想到的是网站编码并不能让链接文本看起来像链接文本。你知道吗
但我也试过了
link = Driver.find_element_by_id("hr_selection_18359391")
得到了同样的结果。如果有人能告诉我我做错了什么,我会很感激的。你知道吗
/更新:
正如下面指出的,find\ element\ by\ partial\ link\文本在标签上工作,而不是divs。已尝试:
find_element(By.PARTIAL_LINK_TEXT(justtime))
link = Driver.find_element_by_xpath("//div[contains(text(), justtime))")
但那里也没有骰子。我想我得另想办法了。你知道吗
根据我读到的,Xpath应该可以工作。甚至尝试过:
link = Driver.find_element_by_xpath("//div[contains(.,'14:10 * ')]")
link.click()
这给了我一个属性错误。。我觉得有点奇怪。你知道吗
/在兔子洞的下面:
所以我想也许有不止一个链接隐藏在那里的某个地方。我试过:
justtime = "14:10"
links = Driver.find_elements_by_xpath("//div[contains(.,justtime)]")
for eachlink in links:
print eachlink.text
它似乎把网页上的每一个链接都吐了出来。即使那些div没有理由包含14:10。所以我的xpath肯定有问题,但我看不出是什么。你知道吗
两件事:
只对
<a>
标记有效,对<div>
无效click
是一个函数,应该是对于
find_element_by_id
,如果元素在<frame>
内,则需要首先切换到它换回来
相关问题 更多 >
编程相关推荐