热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

selenium–浏览器控制&元素操作

功能方法设置浏览器窗口大小 setSize()&maximize()控制浏览器前进 forward()控制浏览器后退 back()清除文本,如果是一个文件输入框clear()刷新当




























































功能方法
设置浏览器窗口大小 setSize() & maximize()
控制浏览器前进 forward()
控制浏览器后退 back()
清除文本,如果是一个文件输入框clear()
刷新当前页面refresh()
关闭当前窗口,只关闭单个窗口close()
退出相关的驱动程序和关闭所有窗口quit()
在元素上模拟按键输入sendKeys(*value)
单击元素click()
提交表单submit()
返回元素的尺寸getSize()
获得属性值getAttribute(name)
设置该元素是否用户可见isDisplayed()

 


1.设置浏览器大小-setSize() & maximize()

可以根据需求使用setSize()方法设置浏览器的窗口大小,也可以通过方法maximize()设置浏览器窗口全屏;

package com.test.selenium;
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
/**
* 通过
* setSize()
* maximize()
* 方法设置浏览器窗口大小
*
*/
public class App
{
public static void main( String[] args ) throws InterruptedException
{
System.setProperty("webdriver.chrome.bin", "G:/chromedriver.exe");
WebDriver driver = new ChromeDriver();
//随机设置窗口大小
//driver.manage().window().setSize(new Dimension(500,800));
//设置全屏
driver.manage().window().maximize();
driver.get("http://www.baidu.com/");
Thread.sleep(5000);
driver.quit();
System.out.println( "执行结束" );
}
}

2.控制浏览器前进控制浏览器后退

测试的时候也会遇到打开两个浏览器窗口,遇到这种情况需要互相切换窗口就需要用到 forward()和 back()方法实现

package com.test.selenium;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
/**
* 通过
* back()
* forward()
* 方法设置浏览器窗口大小
*
*/
public class App
{
public static void main( String[] args ) throws InterruptedException
{
System.setProperty("webdriver.chrome.bin", "G:/chromedriver.exe");
WebDriver driver = new ChromeDriver();
//第一个页面
String firstUrl = "http://www.baidu.com/";
System.out.printf("访问百度:",firstUrl);
Thread.sleep(4000);
driver.get(firstUrl);

//第二个页面
String secOndUrl= "https://mail.qq.com/";
System.out.printf("访问qq邮箱:",secondUrl);
driver.get(secondUrl);
Thread.sleep(4000);

System.out.printf("退回第一个页面",firstUrl);
driver.navigate().back();
Thread.sleep(3000);

System.out.printf("前进到第二个页面",secondUrl);
driver.navigate().forward();
Thread.sleep(3000);
driver.quit();
System.out.println( "执行结束" );
}
}

3.清除文本,并在元素上模拟按键输入,点击提交

click()、clear()、 sendKeys()方法如何使用,接下来上代码:

package com.test.selenium;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
/**
*
* click()
* clear()
* sendKeys
*
*/
public class App
{
public static void main( String[] args ) throws InterruptedException
{
System.setProperty("webdriver.chrome.bin", "G:/chromedriver.exe");
WebDriver driver = new ChromeDriver();

String url = "https://mail.qq.com/";
System.out.printf("访问qq邮箱:",url);
driver.get(url);
Thread.sleep(4000);
driver.findElement(By.id("qqLoginTab")).click();
Thread.sleep(2000);
//有iframe结构,需要先进入到iframe里面去
driver.switchTo().frame("login_frame");
Thread.sleep(2000);
//点击
driver.findElement(By.id("switcher_plogin")).click();
Thread.sleep(2000);
//清楚文本
driver.findElement(By.id("u")).clear();
Thread.sleep(2000);
//输数信息
driver.findElement(By.id("u")).sendKeys("15453525111");
Thread.sleep(2000);
driver.findElement(By.id("p")).clear();
Thread.sleep(2000);
driver.findElement(By.id("p")).sendKeys("xxxxx");
Thread.sleep(2000);
driver.findElement(By.id("login_button")).click();
Thread.sleep(4000);
driver.quit();
System.out.println( "执行结束" );
}
}

6.提交表单--submit()

submit()方法用于提交表单,这里特别用于没提交按钮的情况,例如搜索框输入关键字之后的“回车”操作,对于这种情况就可以使用 submit()来实现提交搜索框的内容

package com.test.selenium;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
/**
*
* submit()
*
*/
public class App
{
public static void main( String[] args ) throws InterruptedException
{
System.setProperty("webdriver.chrome.bin", "G:/chromedriver.exe");
WebDriver driver = new ChromeDriver();

String url = "https://www.baidu.com/";
System.out.printf("访问百度:",url);
driver.get(url);
Thread.sleep(4000);

driver.findElement(By.id("kw")).sendKeys("博客园");
Thread.sleep(2000);
//通过click实现搜索
//driver.findElement(By.id("su")).click();
//通过submit实现提交功能
driver.findElement(By.id("su")).submit();
Thread.sleep(4000);
driver.quit();
System.out.println( "执行结束" );
}
}

7.获取元素相关属性

有的时候我们需要获取相关元素对应的一些属性,这里就总结常用的几种。

package com.test.selenium;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
/**
*getSize()
*getAttribute()
*isDisplayed()
*
*/
public class App
{
public static void main( String[] args ) throws InterruptedException
{
System.setProperty("webdriver.chrome.bin", "G:/chromedriver.exe");
WebDriver driver = new ChromeDriver();

String url = "https://www.baidu.com/";
System.out.printf("访问百度:",url);
driver.get(url);
Thread.sleep(4000);

WebElement eleme =driver.findElement(By.id("kw"));
Thread.sleep(1000);
//获得百度输入框的尺寸
System.out.print("获得元素得size:");
System.out.println(eleme.getSize());
//返回元素的属性值
System.out.print("获得元素得getAttribute:");
System.out.println(eleme.getAttribute("type"));
//返回元素的结果是否可见,返回结果为 True 或 False
System.out.print("元素是否可见:");
System.out.println(eleme.isDisplayed());
driver.quit();
System.out.println( "执行结束" );
}
}


推荐阅读
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
author-avatar
HikariFocus_695
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有