自动化网页时随机弹出窗口

时间:2014-05-27 13:44:12

标签: selenium-webdriver testng

我正在参加面试,他给了我以下场景。如果我能得到一个暗示,因为我无法回答问题。

  • 假设有一个应用程序,弹出窗口一直在上升。这些不是时代,它只是随机的。你永远都不知道他们什么时候来。如何处理?

  • 假设您编写的脚本没问题。但由于网络问题,页面中的对象加载速度很慢或页面本身需要很长时间。你是如何处理这种情况的?

  • 假设我在应用程序中有5-6页。在所有页面中,我们都有某些文本字段。在第1页和第5页中,有一个对象是一个文本框。我看到无论你采用什么识别方法(css,xpath,id等),值都是一样的。这是重复的。你是如何处理这种情况的?

  • "数据提供商"的基本目的是什么? TestNG中的注释。在genral中,testng注释的目的是什么?

感谢。

3 个答案:

答案 0 :(得分:0)

假设您编写的脚本没问题。但由于网络问题,页面中的对象加载速度很慢或页面本身需要很长时间。

你如何应对这种情况。在这种情况下,你应该等待Selenium的财产。隐含等待或显式等待。

隐式等待 - 用于设置网页加载的超时

Driverobject.manage().timeouts().PageLoadtimeOut(units,TimeUnit.SECONDS); 

显式等待 - 用于设置特定

的超时
Webelement FirefoxDriver f = new FirefoxDriver(); 
WebDriverWait ww = new WebDriverWait(f,Units); 
ww.until(ExpectedConditions.CONDITION);

答案 1 :(得分:0)

对于第二个问题,Anubhav已经回答了。

第三,即使page1和page5的元素相同,也可以区分它们。首先,切换到要与之交互的文本字段的页面,然后与该文本字段进行交互。

第四,dataprovider是TestNG中的一个注释,您可以使用它进行数据驱动测试并使用TestNG注释,您可以管理测试的测试执行流程。有关dataprovider和TestNG注释的更多详细信息,请转到here

答案 2 :(得分:0)

第三,如果您在单个浏览器的不同选项卡中打开5-6页面,您将遇到这样的重复问题。那个时候最终用户只能看到一页。因此,我们可以通过可见性区分该元素,并可以使用webdriver

与该元素进行交互
List<WebElement> el=driver.findElements(By.xpath("xpath of that text element"));//you can use other than xpath too to identify the elements
    for(int i=0;i<el.size();i++)
    {
        if(el.get(i).isDisplayed())
            el.get(i).sendKeys("text you want to send");//any other action you want to perform
        break;
    }