已经问过该问题的不同版本:
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
我可以使用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)
任何帮助将不胜感激。
答案 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")