为什么鼠标悬停数据消失

时间:2019-05-10 07:03:44

标签: python selenium selenium-webdriver hover mousehover

当我将鼠标悬停在元素上时,它会以HTML代码显示表格 但是当我滚动时,再次尝试将鼠标悬停,这不起作用吗? 任何帮助

from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(0)
url = 'https://public.tableau.com/views/IRENA_Decentralised_RE_Data_Review_2019/ExploreData?:showVizHome=no'
driver.get(url)
time.sleep(3)

for i in range(10000):
    element = driver.find_element_by_xpath("//div[@class='tab-tvScrollY tvimages'][./div[@class='tvimagesContainer' and @style]]")
    driver.execute_script('arguments[0].scrollTop = (0,{})'.format(str(i*49)),element)
    actions = ActionChains(driver)
    actions.move_by_offset(1330,200).perform()
    time.sleep(3)

1 个答案:

答案 0 :(得分:1)

花了三个小时,我终于明白了!

hover的某些Tableau行为也不起作用,无法说出原因。

下面是我的代码,说明我将鼠标悬停在所有行上的操作。

import time

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome(executable_path='./chromedriver')
driver.maximize_window()
driver.implicitly_wait(0)
url = 'https://public.tableau.com/views/IRENA_Decentralised_RE_Data_Review_2019/ExploreData?:showVizHome=no'
driver.get(url)
time.sleep(2)

scroll = driver.find_element_by_xpath("//div[@class='tab-tvScrollY tvimages']"
                                      "[./div[@class='tvimagesContainer' and @style]]")
column = driver.find_elements_by_xpath("//canvas[@class='tabCanvas tab-widget']")[1]

action = ActionChains(driver)
for i in range(10000):
    driver.execute_script('arguments[0].scrollTop = (0,%s)' % str(i * 49), scroll)

    # Move cursor to hover element
    action.move_to_element_with_offset(column, 0, 0).perform()

    # Select HTML table
    table = driver.find_element_by_xpath("//div[@class='tab-tooltip tab-widget "
                                         "tab-tooltipBL tab-allowMouseEventPassthrough']")
    # Your selenium code to extract HTML content [...]

    # Move cursor to reset tableau hover function behavior
    action.move_to_element(scroll).perform()

希望有帮助!