我有一个带文本的element1,我点击了这个element1,它将我带到另一个页面,然后点击另一个element2并将我带回element1。但是element1应该与element2具有相同的文本,因为当我点击element2时它已经更新了。你会如何在Appium中验证它?
如果element2在不同的页面上,我很困惑如何验证它
String txt1=element1.getText("same");
String txt2=element2.getText("same");
if(txt1.equals(txt2))
{
System.out.println("Success");
}
else
{
System.out.println("Failure");
}
答案 0 :(得分:0)
您可以在获取元素值之前通过验证标题来检查:
//current first page
String firstPageTitle = driver.getTitle();
String txt1=element1.getText();
element1.click();
//current page Second
String secondPageTitle = driver.getTitle();
if(!secondPageTitle.equals(firstPageTitle )){
String txt2=element2.getText();
}
//verify if element texts are equal
if(txt1.equals(txt2))
{
System.out.println("Success");
}
else
{
System.out.println("Failure");
}
答案 1 :(得分:0)
你可以尝试这个..它会比较你的两个期望值。
assertEquals(txt1,txt2,"txt1 And txt2 is not same");
答案 2 :(得分:0)
尝试亚马逊网站的例子,其中页面不同但gettext的值相同
WebDriver driver=new FirefoxDriver();
driver.get("https://www.amazon.in");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
String titleFirstPage=driver.getTitle();
WebElement element1=driver.findElement(By.xpath(".//*[@id='nav-
logo']/a[1]/span[1]"));
String element1Text=element1.getText();
driver.findElement(By.xpath(".//*[@id='tile-top']/div[2]/a/span")).click();
String titleSecondPage=driver.getTitle();
WebElement element2=driver.findElement(By.xpath(".//*[@id='nav-logo']/a[1]/span[1]"));
String element2Text=element2.getText();
if (!titleFirstPage.equals(titleSecondPage)) {
System.out.println("Differnt page");
if(element1Text.equals(element2Text))
{
System.out.println("Amazon title is same");
}
else
{
System.out.println("not matched");
}
}
else
{
System.out.println("Smoething is not correct");
}
答案 3 :(得分:0)
使用以下语法捕获要比较的每个元素的文本。
String text1=element1.getText();
现在你可以使用if语句或断言2个文本是否相等。
答案 4 :(得分:0)
检查两个元素或一个字符串是否显示在预期的元素上。
assert(firstText.contains(secondText));
如果案例通过则返回True,如果案例失败则返回False。