我们在所有页面的页面顶部都有一个搜索小部件。我想检查一下,如果该小部件在网站的所有页面上都可见。有没有更聪明的方法,而不是去所有的页面并检查它?
答案 0 :(得分:0)
直接回答,当您想要检查窗口小部件是否可见时,我们应该使用方法isVisible()
。但isVisible()
中提供了Selenium RC
,在当前的WebDriver
实施中已弃用。我们可以使用isDisplayed()
,isEnabled()
或isSelected()
中的任何一种来代替documentation。
因此,当您谈到search widget at the top of the page in all the pages
时,我认为 isDisplayed()
方法符合您的要求。例如,让我们以Search
主页上的stackoverflow.com
字段为例,该字段可在所有页面上使用。现在我们想要check, if that widget is visible on all the pages of the website
。示例代码块可以如下:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class A_Firefox
{
public static void main(String[] args)
{
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://stackoverflow.com");
System.out.println("Application opened");
System.out.println("Page Title is : "+driver.getTitle());
WebElement my_element = driver.findElement(By.xpath("//input[@name='q']"));
if(my_element.isDisplayed())
{
System.out.println("Element is displayed");
}
else
{
System.out.println("Element is not displayed");
}
driver.quit();
}
}
我的控制台上的输出是:
Application opened
Page Title is : Stack Overflow - Where Developers Learn, Share, & Build Careers
Element is displayed
作为增强功能,您可以创建一个presenceOfSearchBox(WebElement ele)
函数,并将WebElement
作为参数从您访问的每个页面传递,以验证是否显示小部件,如下所示:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class A_Firefox
{
public static void main(String[] args)
{
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://stackoverflow.com");
System.out.println("Application opened");
System.out.println("Page Title is : "+driver.getTitle());
WebElement my_element = driver.findElement(By.xpath("//input[@name='q']"));
presenceOfSearchBox(my_element);
driver.quit();
}
public static void presenceOfSearchBox(WebElement ele)
{
if(ele.isDisplayed())
{
System.out.println("Element is displayed");
}
else
{
System.out.println("Element is not displayed");
}
}
}