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

微信手机网站搭建东莞设计网站建设方案

微信手机网站搭建,东莞设计网站建设方案,wordpress固定连接只能访问首页,多媒体教学网站的建设的论文1.元素的定位 web自动化测试的操作核心是能够找到页面对应的元素,然后才能对元素进行具体的操作。 常见的元素定位方式非常多,如id,classname,tagname,xpath,cssSelector 常用的主要由cssSelector和xpath 1.1 cssSelector选择器 选择器的功能&#x…

1.元素的定位

web自动化测试的操作核心是能够找到页面对应的元素,然后才能对元素进行具体的操作。

常见的元素定位方式非常多,如id,classname,tagname,xpath,cssSelector

常用的主要由cssSelector和xpath

1.1 cssSelector选择器

选择器的功能:选中页面中指定的标签元素

选择器的种类分为基础选择器和复合选择器,常见的元素定位方式可以通过id选择器和子类选择器来进行定位。

selector选择器

xpath

XML路径语言,不仅可以在XML文件中查找信息,还可以在HTML中选取节点。

xpath使用路径表达式来选择xml文档中的节点

xpath语法中:

xpath://*[@id=“kw”]

1.2.1 获取HTML页面所有的节点

//*

1.2.2 获取HTML页面指定的节点

//[指定节点]

//ul:获取HTML页面所有的ul节点

//input:获取HTML页面所有的input节点

1.2.3 获取一个节点中的直接子节点

/

//span/input

1.2.4 获取一个节点的父节点

//input/…获取input节点的父节点

1.2.5实现节点属性的匹配

[@…]

//*[@id=‘kw’]匹配HTML页面中id属性为kw的节点

1.2.6 使用指定索引的方式获取对应的节点内容

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

百度热搜xpath定位://*[@id=“s-hotsearch-wrapper”]/div

更便捷的生成selector/xpath的方式:右键选择复制"Copy selector/xpath"

没有这样的元素

注意:登录状态下和非登录状态下自动化打开的页面不一定相同,因为在做自动化测试一定要注意页面状态的一致性NoSuchElementException找不到元素异常

findElement(By) 在页面查找元素,返回值Element

findElements(By) 在页面查找元素,返回值为List

2.操作测试对象

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

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;public class SeleniumChromeTest {public static void main(String[] args) throws InterruptedException {// 设置 ChromeDriver 的路径String chromeDriverPath = "D:\\网页下载\\chromedriver-win64\\chromedriver-win64\\chromedriver.exe"; // 替换为你的 chromedriver 路径System.setProperty("webdriver.chrome.driver", chromeDriverPath);// 配置 Chrome 浏览器选项ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*"); // 解决某些版本的兼容性问题// 初始化 ChromeDriverWebDriver driver = new ChromeDriver(options);try {// 打开目标网页driver.get("https://www.baidu.com");// 等待页面加载完成Thread.sleep(2000);// 定位搜索框元素WebElement searchBox = driver.findElement(By.id("kw"));// 在搜索框中输入内容searchBox.sendKeys("Selenium Java 自动化测试");// 定位“百度一下”按钮WebElement searchButton = driver.findElement(By.id("su"));// 点击按钮提交搜索searchButton.click();// 等待搜索结果加载完成Thread.sleep(3000);// 输出当前页面的标题System.out.println("当前页面标题: " + driver.getTitle());} catch (Exception e) {e.printStackTrace();} finally {// 关闭浏览器driver.quit();}}
}
2.1点击/提交对象

click()

// 找到百度一下按钮并点击

driver.findElement(By.cssSelector(“#su”)).click();

除了按钮之外,页面的绝大多数元素都可以点击

页面隐藏的标签、不可见的标签就不能点击。

第一步筛选:看标签的属性是否有hidden关键字

第二步:看每个标签对应的样式

2.2模拟按键输入

sendKeys(“”)

driver.findElement(By.cssSelector(“#kw”)).sendKeys(“输入文字”);

输入框可以接收的内容都可以通过sendKeys发送过去

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.apache.commons.io.FileUtils;import java.io.File;
import java.time.Duration;
import java.util.List;public class FirstTest {WebDriver driver = null;void createDriver() {String chromeDriverPath = "D:\\网页下载\\chromedriver-win64\\chromedriver-win64\\chromedriver.exe"; // 替换为你的 chromedriver 路径System.setProperty("webdriver.chrome.driver", chromeDriverPath);// 增加浏览器配置:创建驱动对象要强制指定允许访问所有的链接// 配置 Chrome 浏览器选项ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*"); // 解决某些版本的兼容性问题// 初始化 ChromeDriverdriver = new ChromeDriver(options);}// 测试百度搜索关键字:迪丽热巴void test01() throws InterruptedException {createDriver();try {// 2.输入完整的网址: https://www.baidu.comdriver.get("https://www.baidu.com");WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));// 3.找到输入框,并输入关键词:迪丽热巴wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#kw"))).sendKeys("迪丽热巴");// 4.找到百度一下按钮,并点击wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#su"))).click();} catch (Exception e) {e.printStackTrace();takeScreenshot();} finally {if (driver != null) {Thread.sleep(8000);// 5.关闭浏览器driver.quit();}}}private void takeScreenshot() {if (driver != null) {try {File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);FileUtils.copyFile(screenshot, new File("screenshot.png"));System.out.println("截图已保存到 screenshot.png");} catch (Exception e) {e.printStackTrace();}}}// 元素的定位void test02() throws InterruptedException {createDriver();// 选择器driver.findElement(By.cssSelector("#s-hotsearch-wrapper > div"));driver.findElement(By.xpath("//*[@id=\"s-hotsearch-wrapper\"]/div"));List<WebElement> ll = driver.findElements(By.cssSelector("#hotsearch-content-wrapper > li > a >span.title-content-title"));for (int i = 0; i < 10; i++) {// 获取元素Ele对应的文本System.out.println(ll.get(i).getText());}driver.quit();}// 操作元素void test03() throws InterruptedException {createDriver();//        WebElement ele = driver.findElement(By.cssSelector("#head_wrapper"));
//        ele.click();try {// 打开目标网页driver.get("https://www.baidu.com");// 等待页面加载完成Thread.sleep(2000);// 这两行代码是上面的测试代码
//            WebElement ele = driver.findElement(By.cssSelector("#head_wrapper"));
//            ele.click();// 定位搜索框元素WebElement searchBox = driver.findElement(By.id("kw"));// 在搜索框中输入内容searchBox.sendKeys("Java语言");// 定位“百度一下”按钮WebElement searchButton = driver.findElement(By.id("su"));// 点击按钮提交搜索searchButton.click();// 等待搜索结果加载完成Thread.sleep(3000);} catch (Exception e) {e.printStackTrace();} finally {// 关闭浏览器driver.quit();}}
}
2.3清除文本内容

输入文本后又想换一个新的关键词,这里就需要用到clear()

若想要在一个场景下更换多个关键词,需要将前一个关键词清除掉,若不清除,每次sendKeys将完成拼接的操作

void test03() throws InterruptedException {createDriver();//        WebElement ele = driver.findElement(By.cssSelector("#head_wrapper"));
//        ele.click();try {// 打开目标网页driver.get("https://www.baidu.com");// 等待页面加载完成Thread.sleep(2000);// 这两行代码是上面的测试代码
//            WebElement ele = driver.findElement(By.cssSelector("#head_wrapper"));
//            ele.click();// 定位搜索框元素WebElement searchBox = driver.findElement(By.id("kw"));// 在搜索框中输入内容searchBox.sendKeys("Java语言");Thread.sleep(2000);searchBox.clear();Thread.sleep(2000);searchBox.sendKeys("赏心悦目的图片");// 定位“百度一下”按钮WebElement searchButton = driver.findElement(By.id("su"));// 点击按钮提交搜索searchButton.click();// 等待搜索结果加载完成Thread.sleep(3000);} catch (Exception e) {e.printStackTrace();} finally {// 关闭浏览器driver.quit();}}
2.4获取文本信息

如果判断获取到的元素对应的文本是否符合预期呢?获取元素对应的文本并打印一下

获取文本信息:getText()

为什么打印的txt为空?

因为"百度一下"是input标签里的属性值 getAttribute(String)

2.5获取当前页面标题和URL

getTitle()

getCurrentUrl()

3.窗口设置大小

1)窗口的大小设置

// 窗口最小化
driver.manage().window().minimize();
// 窗口最大化
driver.manage().window().maximize();
// 窗口全屏
driver.manage().window().fullscreen();
// 手动设置窗口大小
driver.manage().window().setSize(new Dimension(800, 600));

打开百度新闻(窗口的切换)

是两个新闻标签页

1)获取当前页面句柄

driver.getWindowHandle();

2)获取所有页面句柄:

driver.getWindowHandles();

void test04() {createDriver();try {// 打开百度首页driver.get("https://www.baidu.com");System.out.println("已打开百度首页:" + driver.getTitle());// 显式等待页面加载完成WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));// 点击“新闻”链接WebElement newsLink = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#s-top-left > a:nth-child(1)")));newsLink.click();System.out.println("已点击新闻链接");// 获取当前窗口句柄String curHandle = driver.getWindowHandle();System.out.println("当前窗口句柄为:" + curHandle);System.out.println("===============================================");// 获取所有窗口句柄并切换到新窗口Set<String> allHandles = driver.getWindowHandles();for (String handle : allHandles) {if (!handle.equals(curHandle)) { // 使用 equals() 比较字符串driver.switchTo().window(handle);System.out.println("跳转之后:" + driver.getTitle());// 显式等待目标元素加载完成WebElement headlineTabs = wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("#headline-tabs > ul")));System.out.println("找到目标元素:" + headlineTabs.getText());break; // 切换到新窗口后退出循环}}} catch (Exception e) {e.printStackTrace();} finally {// 关闭浏览器if (driver != null) {driver.quit();}}
}


文章转载自:

http://gTHFNTNb.bnfsw.cn
http://iDz1dqFf.bnfsw.cn
http://umOZQXRI.bnfsw.cn
http://K1ly3fTz.bnfsw.cn
http://HpuEmbyL.bnfsw.cn
http://i7XmMSiP.bnfsw.cn
http://zG1QHQGt.bnfsw.cn
http://BFvqSU7z.bnfsw.cn
http://Ls1TOTcS.bnfsw.cn
http://9EnnLy6e.bnfsw.cn
http://7MBzvF3s.bnfsw.cn
http://xGNKfzoW.bnfsw.cn
http://JqyDU143.bnfsw.cn
http://cZyXpTXI.bnfsw.cn
http://q1eFXga5.bnfsw.cn
http://nMttBZS0.bnfsw.cn
http://WMBIxok6.bnfsw.cn
http://Rlvs8yvQ.bnfsw.cn
http://VeNm5Op8.bnfsw.cn
http://X2XMtPgi.bnfsw.cn
http://ve9zjpqD.bnfsw.cn
http://IRUJW56G.bnfsw.cn
http://1fXt7p5r.bnfsw.cn
http://t7Akiv2z.bnfsw.cn
http://pXTiPSod.bnfsw.cn
http://LWbrfhKG.bnfsw.cn
http://60RvB4ja.bnfsw.cn
http://5NsHDq4I.bnfsw.cn
http://YPGysMmR.bnfsw.cn
http://WnIkTGnP.bnfsw.cn
http://www.dtcms.com/wzjs/739090.html

相关文章:

  • 上海手机网站制作哪家好浙江省建设信息港证书
  • 网站建设的基础天使投资
  • 西安个人做企业网站南京专业做网站的公司有哪些
  • 徐州建设工程审图中心网站响应式网站和普通网站
  • 西安网站设计试听四川建设机械网站首页
  • 沧州做企业网站公司建网站怎样才能通过备案
  • 北京旅游网站建设网站做的好的医院
  • 濮阳网站建设兼职百度收录有什么用
  • 小白如何搭建一个网站同学录网站开发的背景
  • 四川网站开发农产品销售平台
  • 设计之窗网站phpmysql网站开发技术项目式教程
  • 个人网站怎么做微商怎样与知名网站做友情链接
  • 怎么做wp网站jsp网站建设技术案例
  • 太原定制网站制作流程wordpress 仿百度模板
  • 专业做网站建设公司好吗做网站步骤
  • 做视频直播类型的网站设计资料网站
  • 网站建设 石景山黔东南网站开发
  • 一般网站的流量是多少商城网站建
  • 什么是多页面网站wordpress开发周期
  • c2c模式介绍wordpress手机优化
  • 深圳网站设计很棒 乐云践新什么是网络营销产生的现实基础
  • 建公司网站设计网站公司平面设计学徒工资一般多少
  • 长春建设厅官方网站怎么建一个公司运营网站
  • 北京社招网站wordpress调用一篇
  • phpcms 怎么做视频网站首页wordpress是哪种服务器
  • 微网站怎么制作软件编程学什么专业
  • 合肥哪家公司做网站网站运营做网页设计
  • 有风险的网站苏州绿叶网站建设
  • 想做网站平面图设计软件有哪些
  • 网站关键词是什么网站备案信息被注销