我已经编写了代码来验证文本和可见性,而无需定位器。请大家推荐一下,这是正确的方法吗?
如果有任何替代方法,我们将不胜感激您的建议。
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);
因为理论上文本可能是页面上没有的内容,然后您将得到 NoSuchElementException
所以更好的方法是
//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();
}
}
关于java - 在 selenium webdriver 中无需定位器即可验证文本的存在和可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17206900/