我正在参加面试,他给了我以下场景。如果我能得到一个暗示,因为我无法回答问题。
假设有一个应用程序,弹出窗口一直在上升。这些不是时代,它只是随机的。你永远都不知道他们什么时候来。如何处理?
假设您编写的脚本没问题。但由于网络问题,页面中的对象加载速度很慢或页面本身需要很长时间。你是如何处理这种情况的?
假设我在应用程序中有5-6页。在所有页面中,我们都有某些文本字段。在第1页和第5页中,有一个对象是一个文本框。我看到无论你采用什么识别方法(css,xpath,id等),值都是一样的。这是重复的。你是如何处理这种情况的?
"数据提供商"的基本目的是什么? TestNG中的注释。在genral中,testng注释的目的是什么?
感谢。
答案 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;
}