【问题标题】:Double click works in Firefox but not chrome (Python/Selenium)双击适用于 Firefox 但不适用于 chrome (Python/Selenium)
【发布时间】:2015-03-24 19:31:09
【问题描述】:

我有一个需要double_click().perform() 操作的元素。它在 Firefox 中运行良好,但在 Chrome 中却不行。单击会显示一个菜单,但双击会将您带到一个目录。这是我的 python/selenium 步骤:

(webdriver.ActionChains(self.browser)).double_click(self.browser.find_element_by_id('nav-link-shopall')).perform()

错误消息返回我要验证存在的文本不存在。如果double_click().perform() 没有完成它的工作,这是正确的。

我正在使用 Python 2.7.8 和 Selenium 2.45.0。

我以 Amazon.com 为例,因为其行为与我正在测试的专有代码相同。所以这是我试图点击的 HTML 代码:

<div class="nav-left">
    <div id="nav-shop">
         <a href="/gp/site-directory/ref=nav_shopall_btn" class="nav-a nav-a-2" data-nav-tabindex="15" id="nav-link-shopall" tabindex="1">
             <span class="nav-line-1">Shop by</span>
             <span class="nav-line-2">"Department"
                 <span class="nav-icon nav-arrow" style="visibility:visible;"></span>
             </span>
         </a>
      </div>
    </div>

【问题讨论】:

    标签: python google-chrome selenium


    【解决方案1】:

    试试这个:

    variable =  self.browser.find_element_by_id('nav-link-shopall')
    actions = ActionChains(driver)
    actions.move_to_element(variable)
    actions.double_click(variable)
    actions.perform()
    

    你应该使用移动到元素。

    【讨论】:

    • 不行,还是不行。它在 Firefox 中仍然有效,但由于某种原因,它没有执行 double_click(variable)' in Chrome. I might add, that the Traceback is just saying NoSuchElementException: Message: no such element` 来尝试断言下一个元素存在。此特定操作没有错误。
    • 尝试添加 build() 方法。
    • 我觉得我要问一个愚蠢的问题,但是 from import 用于 build() 是什么?
    • 正如你提到的NoSuchElementException:消息:没有这样的元素,尝试使用其他定位器而不是“id”,并且构建来自actions类,不需要导入任何东西,提供html sn很好-p
    • 该 Traceback 链接到应该在目标页面上找到的代码。它与测试的点击部分无关。这是预期结果的结果。在 Firefox 中,我的测试有效。问题是它在 Chrome 中不起作用。 double_click().perform() 在 Firefox 中很好。
    猜你喜欢
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 2018-09-08
    • 2014-11-17
    • 2015-06-09
    • 2011-08-21
    • 1970-01-01
    相关资源
    最近更新 更多