示例
System.setProperty("webdriver.gecko.driver", "");ChromeOptions chromeOptions = new ChromeOptions();chromeOptions.setHeadless(true);WebDriver driver = new ChromeDriver(chromeOptions);driver.get("https://www.baidu.com/");//TODO 进行定位......// 关闭浏览器driver.quit()
根据元素的id属性来定位元素
//通过id定位driver.findElement(By.id("kw")).sendKeys("selenium如何定位元素");
根据元素的name属性来定位元素,但是注意name的属性值在当前文档中可以不是唯一的
//通过name定位driver.findElement(By.name("wd")).sendKeys("selenium如何定位元素");
通过class定位
//通过class定位driver.findElement(By.className("s_ipt")).sendKeys("selenium如何定位元素");
通过tag进行定位,tag定位比较模糊,多用于标题等特殊标签
driver.findElement(By.tagName("h1"))
定位超链接文本(文本值)
driver.findElement(By.linkText("hao123"))
模糊的link_text定位
driver.findElement(By.linkText("hao"))
能够实现路径定位(绝对路径,相对路径);
可以利用路径+元素属性进行定位
driver.findElement(By.xpath("//input[@id='kw']"))
采用css的方式定位元素
driver.findElement(By.cssSelector("#id名称"))
.click()
.submit()
Input.sendkeys();
Input.clear();
.getText()
当我们要进行全屏截图时,我们需要滑动浏览器右边的滚轮,但是滑动太快,便会造成页面并没有加载完毕,最终截出来的图为页面加载中的图。因此需要需要慢慢进行滑动加载。
/*** 重置窗口大小(调整至可以正常截图)** @param driver 驱动对象*/private void resetWindowSizeToScreenshot(WebDriver driver) throws InterruptedException {JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver;//最高高度int lastHeight = 0;int k = 1;while (true) {// 获取当前高度Object thisHeightObject = javascriptExecutor.executeScript("return document.body.scrollHeight;");int thisHeight = Integer.parseInt(String.valueOf(thisHeightObject));// 判断滑动后的高度lastHeight,与当前高度是否发生变化,如果没有变化,说明滑动到了最底部if (lastHeight != thisHeight) {String jsMove = String.format("window.scrollBy(0,%s)", k * 300);// 向下滑动javascriptExecutor.executeScript(jsMove);// 滑动后赋值lastHeight = thisHeight;sleep(1000);k++;} else {// 高度相同,跳出break;}}sleep(3 * 1000);driver.manage().window().setSize(new Dimension(1920, lastHeight + 300));}