我正在抓取网站http://www.nowgoal.com在该网站中有一个表格,其中每一行都是一个节点。如果您将鼠标悬停在每个分数上,则会在每个节点内显示隐藏的表格。在这种情况下,我正在尝试使用位于右侧的那个,尽管主要分数也存在问题。
我的代码如下
field=CornerButton(node) #Function that returns the element to hover over.
ActionChains(browser).move_to_element(field).perform()
try:
table=WebDriverWait(browser,10).until(
EC.visibility_of_element_located((
By.XPATH,'.//div[contains(@id,"sbOddsCorner") and contains(@style,"visibility: visible")]')))
except: table=None
每次返回的元素都是正确的元素,但通常情况下,table
将返回为None。这是因为当表格保持隐藏状态时,样式属性为"visible :hidden"
,表示ActionChains无法正常工作,而且,有时它确实有效,有时则不然。
编辑:根据此线程python selenium : move_to_element() not working,当浏览器上的phisical游标时,move_element不起作用。如果这是正确的,你怎么能绕过这个?一种可能的方法是单击它而不是move_element。那将是一个补丁,因为即使使用这个元素,浏览器也不会发生任何事情,但情况并非总是如此。 永久解决方案是检查它是否返回None,如果是,则将鼠标移出窗口并重试。
有人知道怎么做吗?还有其他工作吗?