使用美丽的汤显示onmouseover属性的文本

时间:2018-11-04 01:07:03

标签: python html beautifulsoup selenium-chromedriver onmouseover

已经问过该问题的不同版本:

How can I locate a onmouseover element using Selenium in Python?

How to emulate mouseover or run JS function on page with PhantomJS in NodeJS

基本上我想做的是从鼠标悬停时显示的表格单元中获取文本,如下图所示。我用Python编写代码,并使用Beautiful Soup

enter image description here

我可以使用Beautiful Soup成功获取onmouseover属性:

<td class="right odds down"><div onmouseout="delayHideTip()" onmouseover="page.hist(this,'P-0.00-0-0','357osx2s5a4x0x7ot9r',2,event,0,1)">+340</div></td>  

<div onmouseout="delayHideTip()" onmouseover="page.hist(this,'P-0.00-0-0','357osx2s5a4x0x7ot9r',2,event,0,1)">+340</div>

我的问题是。如何使用属性

获取文本(初始奇数)
onmouseover="page.hist(this,'P-0.00-0-0','357osx2s5a4x0x7ot9r',2,event,0,1)

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

好的,答案实际上是使用Selenium Webdriver获取信息。 例如,如果我们要从bwin获取初始赔率,则bwin是我们的odds-data-table中的第8行: 它的x路径是:

 "//*[@id =" + '"odds-data-table"' + "]/div[1]/table/tbody/tr[8]/td[2]")

,我们可以先将鼠标悬停在原始数据上,然后获取信息,如下所示:

 initial_odd_data = driver.find_element_by_xpath("//*[@id =" + '"odds-data-table"' + "]/div[1]/table/tbody/tr[8]/td[2]")
hov = ActionChains(driver).move_to_element(initial_odd_data)
hov.perform()
data_in_the_bubble = driver.find_element_by_xpath("//*[@id='tooltiptext']")
hover_data = data_in_the_bubble.get_attribute("innerHTML")