selenium,python中的MoveTargetOutOfBoundsException

时间:2013-10-24 09:17:13

标签: python python-2.7 selenium selenium-webdriver

我有一个帐户菜单。当我们将鼠标放在它上面时,它的子菜单会出现在屏幕上。 屏幕截图如下。

enter image description here

我想点击“帐户摘要”。我的硒代码如下。

def test_accounts(self):
    self.login(self.driver,properties.userid,properties.password)

    element_to_hover=self.driver.find_element_by_link_text('Accounts')
    hover=ActionChains(self.driver).move_to_element(element_to_hover)
    hover.click().perform()
    self.driver.implicitly_wait(10)
    self.driver.find_element_by_link_text('Account Summary').click()

我收到以下错误。

    test_accounts (__main__.TestCase) ... ERROR

======================================================================
ERROR: test_accounts (__main__.TestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\New Workspace\Python Test\src\login.py", line 78, in test_accounts
    self.driver.find_element_by_link_text('Account Summary').click()
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 51, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 225, in _execute
    return self._parent.execute(command, params)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 160, in execute
    self.error_handler.check_response(response)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 149, in check_response
    raise exception_class(message, screen, stacktrace)
MoveTargetOutOfBoundsException: Message: '' 

----------------------------------------------------------------------
Ran 1 test in 24.563s

FAILED (errors=1)

我在SO和其他人中尝试了很多链接,但无法找到解决我问题的方法。 由于我是Selenium的新手,这是正确的方式鼠标悬停链接并转到其隐藏的子元素?

我正在使用python 2.7。 任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

这是你点击元素的方式:

accounts_button = driver.find_element_by_link_text('Accounts')

hidden_button = browser.find_element_by_id(hidden_button)

ActionChains(driver).move_to_element(accounts_button).click(hidden_button).perform()

正如您所看到的那样,请删除代码的最后两行。

答案 1 :(得分:0)

我认为事件的继承应该是: 移至元素帐户 - >移至元素帐户摘要 - >点击元素 - >执行