西宁好的网站建设,进入公众号免费获取验证码,wordpress做幻灯片,seo推广优化排名软件文章目录一、浏览器相关操作二、键盘操作三、鼠标操作四、弹窗操作五、下拉框选择六、文件上传七、错误截图一、浏览器相关操作
浏览器窗口大小设置
driver.manage().window().maximize();//窗口最大化
driver.manage().window().minimize();//窗口最小化
driver.manage().wi…
文章目录一、浏览器相关操作二、键盘操作三、鼠标操作四、弹窗操作五、下拉框选择六、文件上传七、错误截图一、浏览器相关操作
浏览器窗口大小设置
driver.manage().window().maximize();//窗口最大化
driver.manage().window().minimize();//窗口最小化
driver.manage().window().setSize(new Dimension(200,500));//设置窗口大小浏览器滚动条设置
我们可以通过 js 代码来实现滚动条的上下移动
driver.executeScript(document.documentElement.scrollTop 0);
//表示距离顶部 0px 置顶
driver.executeScript(window.scroll(0,document.body.scrollHeight));//置底
driver.executeScript(window.scroll(0,document.body.scrollTop));//置顶浏览器的前进/后退
driver.navigate().back();//后退
driver.navigate().forward();//前进窗口切换
浏览器的前进与后退都是在同一个窗口中如果想要从一个窗口跳转到另一个窗口应该怎么做呢可以使用 driver.get(“窗口链接”)也可以通过获取到新窗口的句柄selenium对每个标签页都赋予的唯一标识从而进行跳转活动。
String handle driver.getWindowHandle();//句柄获取
driver.switchTo().window(handle);//切换到目标页面public void handleTest() throws InterruptedException {String handle1 driver.getWindowHandle();//获得当前标签页的句柄System.out.println(原标签页名driver.getTitle());//打印页面标题driver.findElement(By.linkText(新闻)).click();//进入到新的标签页//如果在此打印页面标题会发现依旧是原来的标签页标题,因为 selenium 并不晓得到底应该面向哪个页面//因此需要通过标签页的句柄来进行窗口的跳转活动String handle2 driver.getWindowHandle();//新的窗口的句柄//收集所有页面的句柄如果某句柄和旧窗口的句柄不同那就一定是新窗口的句柄SetString handles driver.getWindowHandles();for (String s:handles) {if (!s.equals(handle1)) {//找到新窗口的句柄啦driver.switchTo().window(s);break;}}System.out.println(新标签页名driver.getTitle());
}二、键盘操作
键盘操作总的来说就是围绕 sendkeys() 方法展开的这边进行一些简单举例
WebElement ele driver.findElement(By.id(kw));
ele.sendKeys(狗狗); //输入文本
ele.sendKeys(Keys.ENTER); //回车
ele.sendKeys(Keys.CONTROL,a); //全选
ele.sendKeys(Keys.CONTROL,x); //剪切
ele.sendKeys(Keys.CONTROL,v); //粘贴三、鼠标操作
selenium 提供了 Actions 接口来进行鼠标操作
Actions actions new Actions(driver);//实例化
WebElement ele driver.findElement(By.cssSelector(#s-top-left div a));//获取目标元素
actions.clickAndHold(ele).perform(); //选中目标元素悬停在上面
actions.contextClick(ele).perform(); //鼠标右击
actions.click(ele).perform(); //鼠标左击
actions.doubleClick(driver.findElement(By.id(su))).perform();//鼠标双击PS一定要记得 perform() ,不然鼠标操作就没有办法进行展示
四、弹窗操作
弹窗分普通弹窗、确认弹窗、提示弹窗
对于普通弹窗来说关掉该弹窗可以直接选中元素进行关闭操作
对于确认弹窗或者提示弹窗之类的是没有办法选中目标元素的。我们需要使用 selenium 提供的 Alert 接口进行弹窗操作的处理 Alert alert driver.switchTo().alert();//获取到这个弹窗的句柄
alert.accept(); //点击确定
alert.dismiss(); //点击取消
alert.sendKeys(Mike); //如果弹框中需要输入内容的话就使用 sendKeys()五、下拉框选择
如下图所示就是下拉框需要使用到 selenium 提供的 select 接口来完成下拉框内容的选择 Select select new Select(ele);
//方法一通过序号来选择
select.selectByIndex(4);//序号是从0开始的序号4是2001
//方法二通过可见的文本内容来选择
select.selectByVisibleText(2001);
//方法三将所有的option的信息获取
ListWebElement eles driver.findElements(By.tagName(option));
eles.get(4).click();//点击选择
//方法四如果有 option 标签内有 value 属性还可以通过 value 值来选择
select.selectByValue(2001);六、文件上传
文件上传的操作一般先要点击上传按钮然后在系统中选择需要上传的文件点击打开进行上传操作但是 selenium 没有办法进行上传操作所以我们可以选择使用 sendKeys() 来进行文件的上传参数就是要上传的文件的路径文件名称
WebElement ele driver.findElement(By.cssSelector(body div div input[typefile]));//选中文件上传按钮
ele.sendKeys(F:\\课堂课件\\KMP算法.pdf);七、错误截图
在测试的过程中可能会出现一些错误。为了找到错误原因除了可以查看错误日志还可以使用错误截图将发生错误时浏览器的状态截图下来
public void getScreenShot() throws IOException {File file driver.getScreenshotAs(OutputType.FILE);//以文件的方式截屏//将时间戳转换成自定义时间格式DateFormat dateFormat new SimpleDateFormat(yyyy-MM-dd-HH-mm-ss);String str dateFormat.format(System.currentTimeMillis());//错误截图文件定义File file1 new File(./src/test/java/com/Case/Error/str.png);FileUtils.copyFile(file,file1);//将文件进行拷贝操作
}在 pom.xml 中引入 FileUtils 使用需要的依赖
dependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.6/version
/dependency