2017-03-03 170 views
0

我想访问页面DOM中的元素。我能够获取元素并打印它,但无法点击它。主要原因是因为有一个页面切换会在鼠标悬停后出现,并且在您将鼠标指针从其移开时进行检索。由于此切换功能,我无法点击切换顶部的按钮。我尝试了鼠标悬停,明确的等待和所有其他的事情,但无法点击按钮。当我尝试打印页面源代码时,可以看到所有元素,但由于某些原因,它对硒不可见。Selenium:无法鼠标悬停元素

按钮点击:

属性名称:数据急救= “SB-切换”

self.driver.find_element_by_css_selector('[data-aid="sb-toggle"]').click()

也试过这样:

页面侧边栏标签,它是可见在页面中切换。

sideBar = self.driver.find_element_by_class_name('page-sidebar') toggleButton = self.driver.find_element_by_css_selector('[data-aid="sb-toggle"]') hover = ActionChains(self.driver).move_to_element(sideBar).move_to_element(toggleButton) hover.click().build().perform()

MoveTargetOutOfBoundsException:消息:元件内偏移不能被滚动到视图:(140,288):对象HTMLDivElement]

我没有收到该元素未发现异常,因为该元素在页面源中找到。

回答

0
hover = ActionChains(self.driver).move_by_offset(1,1) 
    hover.click(self.driver.find_element_by_css_selector('[data-aid="sb-toggle"]')).perform() 

偏移量(1,1)如果我把鼠标悬停在页面的左上角,然后点击按钮。