篇二:Selenium动态网页
Selenium是一个模拟浏览器,进行自动化测试的工具,它提供一组API可以与真实的浏览器内核交互。
一、部署selenium
在项目中引入Selenium的Java模块,以Maven为例:
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.53.0</version> </dependency>
下载浏览器driver,放到本地路径
chrome:需要下载driver
firefox:不需要下载driver,只需要火狐安装后的启动exe
二、java代码中实现
1、基础使用
//谷歌浏览器 System.setProperty("webdriver.chrome.driver", "F:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); //火狐 System.setProperty("webdriver.firefox.bin", "D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); //WebDriver driver = new FirefoxDriver(); //要抓取的网页 driver.get(url); ... //关闭浏览器 driver.close();
2、常用API
学习地址:http://www.360doc.com/content/12/0424/18/1200324_206225317.shtml
获取界面元素
//界面 <input type="text" name="passwd"id="passwd-id" /> //ById WebElement element = driver.findElement(By.id("passwd-id")); //ByName WebElement element = driver.findElement(By.name("passwd")); //By XPATH WebElement element =driver.findElement(By.xpath("//input[@id='passwd-id']")); //By Class Name <div class="cheese"><span>Cheddar</span></div><divclass="cheese"><span>Gouda</span></div> List<WebElement>cheeses = driver.findElements(By.className("cheese")); //By tagName WebElement element =driver.findElement(By.tagName("a")); //获取List<WebElement> List<WebElement> eles = driver.findElements(By.tagName("a"));
获取界面元素值
//获取文本内容 String likecount=elements.get(i).findElement(By.className("slide-like")).getText(); //获取属性值 String song_url=elements.get(i).findElement(By.tagName("a")).getAttribute("href");
操作界面元素
//输入框 WebElement element = driver.findElement(By.id("passwd-id"));//获取输入框对象 element.sendKeys(“test”); //给输入框复制 element.clear(); //清空输入框 element.getText(); //获取输入框内容 //下拉选择框(Select) Select select = new Select(driver.findElement(By.id("select")));//获取下拉框对象 select.selectByVisibleText(“mediaAgencyA”); //通过key选中选项 select.selectByValue(“MA_ID_001”);//通过value选中选项 select.deselectAll(); //清除所有的选中项 select.deselectByValue(“MA_ID_001”); //通过value清除指定选中项 select.deselectByVisibleText(“mediaAgencyA”);//通过key清除指定选中项 select.getAllSelectedOptions(); //获取所有的选项 select.getFirstSelectedOption(); //获取第一选项 //单选项(Radio Button) WebElement bookMode =driver.findElement(By.id("BookMode"));//找到单选框元素 bookMode.click(); //选择某个单选项 bookMode.clear();//清空某个单选项 bookMode.isSelected();//判断某个单选项是否已经被选择 //多选项(checkbox) WebElement checkbox =driver.findElement(By.id("myCheckbox."));//获取多选项对象 checkbox.click();//选择某个选项 checkbox.clear();清空某个选项 checkbox.isSelected();判断某个选项是否已经被选择 checkbox.isEnabled(); //按钮(button) WebElement saveButton = driver.findElement(By.id("save")); saveButton.click();//点击按钮 saveButton.isEnabled ();//判断按钮是否enable //表单(Form) WebElement approve = driver.findElement(By.id("approve"));//获取表单对象 approve.click();//提交表单 approve.submit();//只适合于表单的提交 //弹出对话框(Popup dialogs) Alert alert = driver.switchTo().alert(); alert.accept(); alert.dismiss(); alert.getText(); //上传文件 (Upload File) WebElement adFileUpload = driver.findElement(By.id("WAP-upload")); //上传的input String filePath = "C:\test\\uploadfile\\media_ads\\test.jpg"; adFileUpload.sendKeys(filePath); //导航 (Navigationand History) driver.navigate().to("http://www.example.com"); //打开一个新的页面 driver.navigate().forward();//历史向前 driver.navigate().back();//历史向后

浙公网安备 33010602011771号