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

长春个人做网站2022年新闻摘抄简短

长春个人做网站,2022年新闻摘抄简短,兰州网站推广,WordPress中国市场规模文章目录 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/130353.html

相关文章:

  • 做网站的内容外贸企业网站推广
  • 宝山做网站公司求网址
  • 苏州网站建设推荐好先生科技品牌宣传的推广
  • 在线赚钱网站百度网页打不开
  • 网站建设宣传 mp4竞价代运营外包公司
  • 建材公司网站建设案例营销策划方案模板
  • 深圳手机网站制作公司百度手机助手下载免费安装
  • 如何做幸运28网站代理宁波正规优化seo公司
  • 手机网站开发成为小程序网络营销的五个发展阶段
  • 慈溪开发小学网站建设深圳推广公司
  • 个人网站设计流程步骤优化seo报价
  • 做网站还得备案百度推广seo优化
  • 建设银行陕西分行网站营销策划与运营
  • 设计公司网站seo软件全套
  • 网站建设优化是什么鬼?腾讯广告投放推广平台价格
  • 软件测试培训一般多少钱网站seo优化推广外包
  • 手机网站的内容模块精准客户截流软件
  • 外贸整合营销网站指数分布
  • 怎么做简单的企业网站常州网站推广公司
  • 买域名哪个网站好搜外网友情链接
  • 动力网站建设百度关键词优化软件
  • 网站302怎么做seo分析seo诊断
  • 杭州 网站建设公司百度竞价排名怎么靠前
  • 网站开发岗位职责百度知道提问
  • 哪个网站可以做鞋鉴定如何进行搜索引擎优化 简答案
  • 佛山市手机网站建设公司2024新闻热点摘抄
  • 开发手机端网站模板推广普通话手抄报简单又好看
  • 个人网站可以做产品宣传吗重庆seo教程博客
  • 连江可门港建设发展有限公司网站电脑突然多了windows优化大师
  • 网站后台管理生成器楚雄今日头条新闻