Java 在selenium webdriver中验证文本的存在性和可见性(无定位器)
我已经编写了代码来验证没有定位器的文本和可见性。请建议大家,这是正确的方法吗 如果有其他方法,我们将不胜感激Java 在selenium webdriver中验证文本的存在性和可见性(无定位器),java,selenium,webdriver,selenium-webdriver,Java,Selenium,Webdriver,Selenium Webdriver,我已经编写了代码来验证没有定位器的文本和可见性。请建议大家,这是正确的方法吗 如果有其他方法,我们将不胜感激 public class TextVisibility { WebDriver driver = new FirefoxDriver(); public static String baseUrl = "website url"; public String client = "your search string"; public void visibilityOfText(){
public class TextVisibility {
WebDriver driver = new FirefoxDriver();
public static String baseUrl = "website url";
public String client = "your search string";
public void visibilityOfText(){
driver.get(baseUrl);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
WebElement element = driver.findElement(By.cssSelector("body"));
boolean feedBack = driver.findElement(By.cssSelector("body")).getText().contains(client);
boolean feedbackVisible = element.isDisplayed();
if(feedBack==true){
System.out.println(client+ "is present");
if(feedbackVisible==true){
System.out.println(client+ "is visible");
}
else{
System.out.println(client+ "is not visible");
}
}
else{
System.out.println(client+ "is not present");
}
driver.close();
driver.quit();
}
}
我会做得更好一点。我不会问你为什么要这样做,而是假设你只需要这样做 所以。这一行中存在缺陷:
boolean feedBack = driver.findElement(By.cssSelector("body")).getText().contains(client);
因为从理论上讲,文本可以是不在页面上的内容,然后您将得到NoTouchElementException
所以更好的方法是
//skipping initialization part
try{
boolean feedBack = driver.findElement(By.cssSelector("body")).getText().contains(client);
boolean feedbackVisible = element.isDisplayed();
} catch (NoSuchElementException e){
boolean feedback = false;
boolean feedbackVisible = false;
}
if(feedBack==true){
System.out.println(client+ "is present");
if(feedbackVisible==true){
System.out.println(client+ "is visible");
}
else{
System.out.println(client+ "is not visible");
}
}
else{
System.out.println(client+ "is not present");
}
driver.close();
driver.quit();
}
}
老实说,我不明白你想达到什么目的,你昨天的问题中他们说了什么,你明白了吗?你接受了答案却没有使用它?您是否意识到
element.isDisplayed()
检查body元素的可见性,而不是文本?//这将显示我的文本是否存在(不使用定位器)布尔反馈=driver.findelelement(By.cssSelector(“body”).getText().contains(client);//这将返回当前文本是否可见(不使用定位器)WebElement=driver.findElement(By.cssSelector(“body”);布尔反馈可见=element.isDisplayed();WebElement=driver.findElement(By.cssSelector(“body”);是否将提取身体内部的所有元素?那个么,若正文是可见的,那个么为什么正文中的内容不可见呢?我的主要座右铭是验证文本是否存在,并且在不使用定位器的情况下是否可见。它帮助我在网站设计准备就绪之前编写测试脚本。