4. 把底层框架中1.0的方法修改为2.0的,以下做一个对比
方法 | Selenium1.0 | Selenium2.0 |
打开页面 | Selenium.open(String url); | Driver.get(String url); |
点击元素 | Selenium.click(String arg0); | driver.findElement(By).click(); |
输入框 |
selenium.type(String arg0, String arg1); arg0为元素定位,arg1为输入的值, 再次type时会清空了输入 |
WebElement element = driver.findElement(By); element.sendkeys(arg0); 需要使用element.clear();来清空内容。 |
下拉选择框 |
Selenium.select(String arg0, String arg1); arg0为元素定位,arg1为选择的值 |
找到下拉框元素: Select select=new Select(driver.findElement(By)); 选择对应的选择项: select.selectByVisibleText(String text); //通过文本选择 select.selectByValue(String value); //通过value选择 select.selectByIndex(int index) //通过序号选择 |
单选多选框 |
选择: selenium.check(String locator); 不选: selenium.check(String locator); 判断是否选择: Boolean isChecked(String locator); |
定位元素: WebElement element =driver.findElement(By); 点击:Element.click(); 清除:Element.clear(); 判断是否选择: Boolean isSelected(); 判断是否可选择:Boolean isEnabled(); |
获取文本内容 | selenium.getText(String locator); |
WebElement element =driver.findElement(By); element.getText(); |
弹出框 |
Selenium.chooseOkOnNextConfirmation(); Selenium.chooseCancelOnNextConfirmation(); Selenium.getConfirmation(); 该方法我使用后没有成功,所以一直很纠结 |
Alert alert = driver.switchTo().alert(); alert.accept(); //点击OK alert.dismiss(); //点击cancel alert.getText(); //获取弹出框文本 2.0很好的处理了弹出框问题。 |
frame | 1.0中对frame没有特殊处理跟其他元素一样 |
2.0中需要在frame与defaultContent切换后才能定位, 否则会出现找不到元素的问题 driver.switchTo().defaultContent(); //切换到默认页面内容 driver.switchTo().frame(WebElement frameElement); //切换到对应的frame中 |
页面等待 |
selenium.waitForPageToLoad(String arg0); 直接有方法实现页面加载 |
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); //页面加载等待时间 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); //定位元素等待时间 driver.manage().timeouts().setScriptTimeout(30, TimeUnit.SECONDS); //异步加载等待时间 但是只是在firefox上才能起作用,其他浏览器需要 自己实现对应的方法。 |
隐藏元素 | 在1.0中直接可以操作,即使该元素的style为”display:none” |
如果不显示的元素是无法定位的,那需要触发mouseover 之后才能定位。 |
以上表格中提到的如何通过By定位元素的内容可以参考以下文章:
http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/By.html