【问题标题】:How to handle popovers using Selenium Webdriver + Python如何使用 Selenium Webdriver + Python 处理弹出框
【发布时间】:2011-11-13 15:31:36
【问题描述】:

情况是这样的—— 在我正在测试的网站上,页面源是动态变化的,即当我将鼠标移到一个元素上时,我会看到一个弹出框,它具有 DOM 结构和所有内容。我想捕获弹出框中的 DOM 元素。

我正在使用带有 python 的 webdriver。当我使用 IDLE 时效果很好,因为弹出框会在网页上停留一段时间,我可以捕获 DOM 结构。但是,当我尝试在脚本中执行该操作时,弹出框仅在屏幕上闪烁,我无法捕获 DOM 结构。

我尝试过使用 WebDriverWait、Actions API 等。但没有任何效果。任何指针将不胜感激。谢谢。

【问题讨论】:

    标签: python selenium webdriver browser-automation


    【解决方案1】:

    使用操作将鼠标悬停在元素上。直截了当的方法是这样的(对不起,代码在 C# 中):

    IWebElement element = driver.FindElement(By.Id("something")); 
    Actions action = new Actions(driver); 
    actions.MoveToElement(element);
    actions.Perform();
    
    //get the DOM structure
    

    重要的是不要忘记Perform() 调用。如果这不起作用(有时只是不起作用),MoveToElement 替换为ClickAndHold。通常这会使鼠标悬停弹出窗口等内容无限期打开。

    【讨论】:

      猜你喜欢
      • 2015-07-09
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 1970-01-01
      • 2013-10-24
      相关资源
      最近更新 更多