0


Java Selenium WebDriver 常用方法

//谷歌为例
System.setProperty("webdriver.chrome.driver", "src\\drivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
二、设置窗口位置、大小
//设置浏览器窗口位置,相对于屏幕左上角(0,0)的位置
Point point = new Point(100, 100);
driver.manage().window().setPosition(point);
//设置浏览器窗口大小
Dimension dimension = new Dimension(500, 500);
driver.manage().window().setSize(dimension);

//获取浏览器窗口位置
Point position = driver.manage().window().getPosition();
System.out.println(position);
//获取浏览器窗口大小
Dimension size = driver.manage().window().getSize();
System.out.println(size);

//浏览器窗口最大化
driver.manage().window().maximize();
//全屏
driver.manage().window().fullscreen();
三、访问网页操作
//访问网页地址(第一种方式)
driver.get("https://www.hao123.com/");
//访问网页地址(第二种方式)
driver.navigate().to("https://www.baidu.com/");
//网页后退
driver.navigate().back();
//网页前进
driver.navigate().forward();
//刷新网页
driver.navigate().refresh();
四、获取网页信息
//获取当前页面Url
String currentUrl = driver.getCurrentUrl();
System.out.println(currentUrl);
//获取当前页面源码
String pageSource = driver.getPageSource();
System.out.println(pageSource);
//获取当前页面Title
String title = driver.getTitle();
System.out.println(title);
//获取当前窗口句柄
String windowHandle = driver.getWindowHandle();
System.out.println(windowHandle);
//获取当前所有打开窗口的句柄
Set<String> windowHandles = driver.getWindowHandles();
for (String handle : windowHandles) {
    System.out.println(handle);
}
五、切换窗口

driver.switchTo().window("要切换的窗口句柄");

六、截图保存
File fileTo = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
try {
    FileInputStream fileInputStream = new FileInputStream(fileTo);
    FileOutputStream fileOutputStream = new FileOutputStream("test.png");
    byte[] bytes = new byte[1024];
    int len = 0;
    while ((len = fileInputStream.read(bytes))!=-1){
        fileOutputStream.write(bytes);
    };
} catch (IOException e) {
    e.printStackTrace();
}
七、关闭窗口
//杀掉浏览器进程-谷歌为例(注意:此方法杀掉了所有谷歌进程,包括自己打开的和程序打开的)
WindowsUtils.killByName("chrome.exe");
//关闭当前窗口,如果仅剩一个窗口,则退出浏览器
driver.close();
//退出浏览器
driver.quit();
八、元素定位
1.使用ID定位
WebElement webElement = driver.findElement(By.id("ID值"));

2.使用name定位
WebElement webElement = driver.findElement(By.name("name值"));
List<WebElement> elements = driver.findElements(By.name("name值"));

3.使用链接的全部文字定位
WebElement webElement = driver.findElement(By.linkText("链接的全部文字内容"));
List<WebElement> elements = driver.findElements(By.linkText("链接的全部文字内容"));

4.使用部分链接的文字定位
WebElement webElement = driver.findElement(By.partialLinkText("链接的部分文字内容"));
List<WebElement> elements = driver.findElements(By.partialLinkText("链接的部分文字内容"));

5.使用标签名称定位
WebElement webElement = driver.findElement(By.tagName("页面中的HTML标签名称"));
List<WebElement> elements = driver.findElements(By.tagName("页面中的HTML标签名称"));

6.使用Class名称定位
WebElement webElement = driver.findElement(By.className("页面中的Class属性值"));
List<WebElement> elements = driver.findElements(By.className("页面中的Class属性值"));

7.使用XPath方式定位
WebElement webElement = driver.findElement(By.xpath("XPath定位表达式"));
List<WebElement> elements = driver.findElements(By.xpath("XPath定位表达式"));

8.使用CSS定位
WebElement webElement = driver.findElement(By.cssSelector("CSS定位表达式"));
List<WebElement> elements = driver.findElements(By.cssSelector("CSS定位表达式"));

9.使用jQuery方式定位,先将driver转换为JavascriptExecutor对象,再调用jQuery的find方法查找页面元素,返回List对象
JavascriptExecutor js = (JavascriptExecutor) driver;
List<WebElement> elements =
        (List<WebElement>) js.executeScript("return jQuery.find('jQuery定位表达式')");
九、元素操作
WebElement element= driver.findElement(By.id("id值"));
1.清空输入框
element.clear();

2.输入框输入文字
element.sendKeys("Selenium");

3.点击元素
element.click();

4.获取标签名称
String tagName = element.getTagName();

5.获取属性值
String id = element.getAttribute("id");

6.获取CSS属性值
String width = element.getCssValue("width");

7.获取元素是否可见
boolean displayed = element.isDisplayed();

8.获取元素是否可点击
boolean enabled = element.isEnabled();

9.获取元素是否被选中
boolean selected = element.isSelected();

持续更新中...

标签: selenium

本文转载自: https://blog.csdn.net/hmm_1111/article/details/135444172
版权归原作者 疯-子 所有, 如有侵权,请联系我们删除。

“Java Selenium WebDriver 常用方法”的评论:

还没有评论