当前位置: 首页 > wzjs >正文

宜昌做网站公司关键词三年级

宜昌做网站公司,关键词三年级,哪些网站可以做微信,网页设计代码信件怎么写文章目录 1. 元素定位1.1 cssSelector1.2 xpath 2. 操作测试对象2.1 点击/提交对象2.2 模拟按键输入2.3 清除文本内容2.4 获取文本信息2.5 获取当前页面标题2.6 获取当前页面URL 3. 窗口3.1 切换窗口3.2 窗口设置大小3.3 屏幕截图 4. 等待4.1 强制等待4.2 隐式等待4.3 显式等待…

文章目录

      • 1. 元素定位
        • 1.1 cssSelector
        • 1.2 xpath
      • 2. 操作测试对象
        • 2.1 点击/提交对象
        • 2.2 模拟按键输入
        • 2.3 清除文本内容
        • 2.4 获取文本信息
        • 2.5 获取当前页面标题
        • 2.6 获取当前页面URL
      • 3. 窗口
        • 3.1 切换窗口
        • 3.2 窗口设置大小
        • 3.3 屏幕截图
      • 4. 等待
        • 4.1 强制等待
        • 4.2 隐式等待
        • 4.3 显式等待
      • 5. 浏览器导航
      • 6. 弹窗
        • 6.1 警告弹窗 + 确认弹窗
        • 6.2 提示弹窗
      • 7. 文件上传
      • 8. 浏览器参数设置
        • 8.1 设置无头模式
        • 8.2 设置浏览器加载策略

1. 元素定位

Web自动化测试的核心是能够找到页面对应的元素,然后才能对元素进行具体的操作。常见的元素定位方式包括 idclassnametagnamexpathcssSelector 等。最常用的是 cssSelectorxpath

1.1 cssSelector

选择器的功能是选中页面中指定的标签元素。选择器分为基础选择器和复合选择器,常见的元素定位方式可以通过 id 选择器和子类选择器来进行定位。

示例:
在这里插入图片描述

  • 定位百度首页的“百度热搜”元素:#s-hotsearch-wrapper > div > a.hot-title > div
  • 搜索输入框元素:#kw
  • 百度一下按钮:#su
1.2 xpath

XPath(XML路径语言)不仅可以在XML文件中查找信息,还可以在HTML中选取节点。XPath使用路径表达式来选择XML文档中的节点。

XPath语法:

  1. 获取HTML页面所有的节点://*
  2. 获取HTML页面指定的节点://[指定节点]
    • 获取所有 ui 节点://ui
    • 获取所有 input 节点://input
  3. 获取一个节点中的直接子节点://span/input
  4. 获取一个节点的父节点://input/..
  5. 实现节点属性的匹配:[@...]
    • 匹配 id 属性为 kw 的节点://*[@id='kw']
  6. 使用指定索引的方式获取对应的节点内容:
    • 定位到第三个百度热搜标签://div/ui/li[3]

在这里插入图片描述

注意: XPath 的索引是从 1 开始的。

便捷生成 selector/xpath 的方式:

  • 右键选择元素,选择“Copy selector”或“Copy XPath”。

问题: 手动复制的 selector/xpath 表达式不一定满足唯一性要求,有时需要手动修改表达式。


2. 操作测试对象

获取到页面的元素后,接下来就是对元素进行操作。常见的操作包括点击、提交、输入、清除、获取文本等。

2.1 点击/提交对象

使用 click() 方法点击元素。

示例:

driver.findElement(By.cssSelector("#su")).click();
2.2 模拟按键输入

使用 sendKeys() 方法输入文本。

示例:

driver.findElement(By.cssSelector("#kw")).sendKeys("输入文字");
2.3 清除文本内容

使用 clear() 方法清除输入框中的文本。

示例:

driver.findElement(By.cssSelector("#kw")).sendKeys("我爱游戏");
driver.findElement(By.cssSelector("#kw")).clear();
driver.findElement(By.cssSelector("#kw")).sendKeys("我爱学习");
2.4 获取文本信息

使用 getText() 方法获取元素的文本内容。

示例:

String bdtext = driver.findElement(By.xpath("//*[@id='title-content']/span[1]")).getText();
System.out.println("打印的内容是:" + bdtext);

注意: getText() 用于获取元素的文本内容,而 getAttribute("属性名称") 用于获取元素的属性值。

2.5 获取当前页面标题

使用 getTitle() 方法获取当前页面的标题。

示例:

String title = driver.getTitle();
2.6 获取当前页面URL

使用 getCurrentUrl() 方法获取当前页面的URL。

示例:

String url = driver.getCurrentUrl();

3. 窗口

当打开一个新的页面后,获取到的 titleURL 仍然是前一个页面的。为了切换到新窗口,可以使用窗口句柄(handle)。

3.1 切换窗口
  1. 获取当前页面句柄:driver.getWindowHandle()
  2. 获取所有页面句柄:driver.getWindowHandles()
  3. 切换当前句柄为最新页面:

示例:

String curWindow = driver.getWindowHandle();
Set<String> allWindow = driver.getWindowHandles();
for (String w : allWindow) {if (!w.equals(curWindow)) {driver.switchTo().window(w);}
}

注意: 在执行 driver.close() 之前,需要切换到未被关闭的窗口。

3.2 窗口设置大小
  • 窗口最大化:driver.manage().window().maximize()
  • 窗口最小化:driver.manage().window().minimize()
  • 全屏窗口:driver.manage().window().fullscreen()
  • 手动设置窗口大小:driver.manage().window().setSize(new Dimension(1024, 768))
3.3 屏幕截图

屏幕截图可以记录自动化脚本运行时的错误场景。
屏幕截图方法需要额外导入包:

<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency>

示例:

//简单版本
File srcfile = driver.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(srcfile,new File("my.png"));//⾼阶版本
List<String> times = getTime();
//⽣成的⽂件夹路径./src/test/autotest-2025-03-01/goodsbroser-20250301-214130.png
String filename ="./src/test/autotest-"+times.get(0)+"/"+str+"-"+times.get(1)+".png";
File srcfile = driver.getScreenshotAs(OutputType.FILE);
//把屏幕截图放到指定的路径下
FileUtils.copyFile(srcfile,new File(filename));

3.5关闭窗口

driver.close();

注意: 窗口关闭后driver要重新定义


4. 等待

由于代码执行速度通常比页面渲染速度快,为了避免因渲染过慢导致的自动化误报问题,可以使用 Selenium 提供的三种等待方法。

4.1 强制等待

使用 Thread.sleep() 方法进行强制等待。

优点: 使用简单,调试时有效。
缺点: 影响运行效率,浪费大量时间。

4.2 隐式等待

隐式等待是一种智能等待,它规定在查找元素时,在指定时间内不断查找元素。如果找到则继续执行,否则超时报错。

示例:

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));

优点: 智能等待,作用于全局。
注意: 隐式等待作用域是整个脚本的所有元素。即只要driver对象没有被释放(driver.quit()),隐式等待就一直生效。

4.3 显式等待

显式等待也是一种智能等待,它在指定超时时间范围内等待某个条件满足 后继续执行。
ExpectedConditions预定义方法的⼀些示例:

  • elementToBeClickable(By locator) ‒ 用于检查元素的期望是可见的并已启用,以便您可以单击它。
  • textToBe(Bylocator,String str) - 检查元素。
  • presenceOfElementLocated(Bylocator) ‒ 检查页面的 DOM 上是否存在元素。
  • urlToBe(java.lang.String url) ‒ 检查当前页面的 URL 是⼀个特定的 URL。

示例:

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
boolean ispass = wait.until(ExpectedConditions.textToBe(By.cssSelector("#s-top-left > a:nth-child(1)"), "新闻"));
if (ispass) {System.out.println("测试通过");
} else {System.out.println("测试失败");
}

优点: 可以自定义等待条件,操作灵活。
缺点: 写法复杂。

注意: 不要混合使用隐式等待和显式等待,可能会导致不可预测的等待时间。


5. 浏览器导航

常见的浏览器导航操作包括打开网站、前进、后退、刷新等。

示例:

// 打开网站
driver.get("https://selenium.dev");// 浏览器前进
driver.navigate().forward();// 浏览器后退
driver.navigate().back();// 刷新页面
driver.navigate().refresh();

6. 弹窗

弹窗是页面中无法直接定位的元素,可以使用 Selenium 提供的 Alert 接口处理。

6.1 警告弹窗 + 确认弹窗

在这里插入图片描述

示例:

Alert alert = driver.switchTo().alert();
alert.accept();  // 确认
alert.dismiss(); // 取消
6.2 提示弹窗

在这里插入图片描述

示例:

Alert alert = driver.switchTo().alert();
alert.sendKeys("hello");
alert.accept();

7. 文件上传

点击文件上传的场景下会弹窗系统窗口,进行文件的选择。
selenium无法识别非web的控件,上传文件窗口为系统自带,无法识别窗口元素
但可以通过 sendKeys() 方法上传文件。

示例:

WebElement ele = driver.findElement(By.cssSelector("body > div > div > input[type=file]"));
ele.sendKeys("D:\\selenium2html\\selenium2html\\upload.html");

8. 浏览器参数设置

8.1 设置无头模式

无头模式可以在不打开浏览器的情况下运行自动化脚本。

示例:

ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
ChromeDriver driver = new ChromeDriver(options);
driver.get("https://www.baidu.com");
driver.quit();
8.2 设置浏览器加载策略

在这里插入图片描述
默认加载策略为normal

示例:

options.setPageLoadStrategy(PageLoadStrategy.NONE);
http://www.dtcms.com/wzjs/148017.html

相关文章:

  • 医疗网站源码网站优化推广软件
  • 还有哪些网站可以做H5整站优化cms
  • 网站开发的前端技术有哪些网络营销和网络推广
  • 聊城做网站的公司行情免费seo网站优化
  • docker创建wordpressseo营销优化软件
  • 哪家公司做移动网站站点搜索
  • 凡科做的网站怎么改壁纸口碑营销方案怎么写
  • 手机网站开发成为小程序东莞百度快速排名优化
  • 怎样做网站规划怎么做网站平台
  • 新乡彩票网站建设自助建站平台源码
  • 翠竹林 wordpressseo的优点有哪些
  • 重庆做网站建设找谁在线的crm系统软件
  • 招投标网站抖音seo排名优化
  • 网站下做二级域名百度排名软件
  • 网站 成品下载seo关键词怎么选择
  • 中国空间站现在有几个人深圳网络公司推广平台
  • windows7 iis配置 网站整合营销是什么
  • 游戏界面设计网站短视频询盘获客系统
  • 黄江网站建设搜索引擎排名优化是什么意思
  • 网站怎么做会被收录网络营销的应用研究论文
  • wordpress vantage重庆seo怎么样
  • 做美国大学生建模的相关网站网站制作公司怎么找
  • 手机网站建设的企业出售友情链接是什么意思
  • 一个网站服务器多少钱网站排名优化推广
  • 金属材料东莞网站建设怎么搭建一个网站
  • 网站多久才会被收录外贸网
  • 工会网站升级改造建设方案semen是什么意思
  • 哪个网可以网站备案百度如何发布作品
  • 动态网站建站线上广告接单平台
  • 电视直播网站建设sem网络推广公司