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

深圳做网站得外包公司有哪些深圳龙岗房价多少钱一平方米

深圳做网站得外包公司有哪些,深圳龙岗房价多少钱一平方米,建筑招标网站,垫江网站建设目录 一、元素的定位 1.1 cssSelector 1.2 xpath 1.2.1 获取HTML页面所有的节点 1.2.2 获取HTML页面指定的节点 1.2.3 获取⼀个节点中的直接子节点 1.2.4 获取⼀个节点的父节点 1.2.5 实现节点属性的匹配 1.2.6 使用指定索引的方式获取对应的节点内容 二、操作测试对…目录 一、元素的定位 1.1 cssSelector 1.2 xpath 1.2.1 获取HTML页面所有的节点 1.2.2 获取HTML页面指定的节点 1.2.3 获取⼀个节点中的直接子节点 1.2.4 获取⼀个节点的父节点 1.2.5 实现节点属性的匹配 1.2.6 使用指定索引的方式获取对应的节点内容 二、操作测试对象 2.1 点击/提交对象 2.2 模拟按键输入 2.3 清除文本内容 2.4 获取文本信息 2.5 获取当前页面标题 2.6获取当前页面URL 三、窗口 3.1 切换窗口 3.2 窗口的大小设置 3.3 关闭窗口 3.4 屏幕截图 四、等待 4.1 强制等待 4.2 隐式等待 4.3 显示等待 五、浏览器导航 5.1 打开网站 5.2 浏览器的前进、后退、刷新 六、弹窗 6.1 警告弹窗确认弹窗 6.2 提示弹窗 七、文件上传 八、浏览器参数设置 8.1 设置无头模式 8.2 设置浏览器加载策略 一、元素的定位 web自动化测试的操作核心是能够找到页面对应的元素然后才能对元素进行具体的操作。 常见的元素定位方式非常多如idclassnametagnamexpathcssSelector。常用的主要由cssSelector和xpath。 1.1 cssSelector 选择器的功能选中页面中指定的标签元素。 选择器的种类分为基础选择器和复合选择器常见的元素定位方式可以通过id选择器和子类选择器来进行定位。 定位百度首页的“百度热搜”元素可以使用通过id选择器和子类选择器进行定位#s-hotsearch- wrapper div “搜索输入框元素”#kw “百度一下按钮”#su 1.2 xpath XML路径语言不仅可以在XML文件中查找信息还可以在HTML中选取节点。 xpath使用路径表达式来选择xml文档中的节点。 xpath语法中 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 实现节点属性的匹配 [...] //*[idkw]  匹配HTML页面中id属性为kw的节点 1.2.6 使用指定索引的方式获取对应的节点内容 注意xpath的索引是从1开始的。 百度首页通过//div/ul/li[3] 定位到第三个百度热搜标签 更便捷的生成selector/xpath的方式右键选择复制Copy selector/xpath 注意元素的定位方法必须唯一。 二、操作测试对象 获取到了页面的元素之后接下来就是要对元素进行操作。常见的操作有点击、提交、输入、清 除、获取文本。 2.1 点击/提交对象 click() //找到百度一下按钮并点击 driver.findElement(By.cssSelector(#su)).click(); 页面大部分可以点击但也有一部分例如页面隐藏的标签、不可见的标签就不能点击带有hidden的标签。运行会报“ElementNotInteractableException”错误。 2.2 模拟按键输入 sendKeys() 输入框可以接收的内容都可以输入。 driver.findElement(By.cssSelector(#kw)).sendKeys(输入⽂字); 2.3 清除文本内容 clear() 输入文本后又想换一个新的关键词这需要用到 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(//*[idtitle-content]/span[1])).getText(); System.out.println(打印的内容是bdtext); 获取属性值getAttribute(参数) 如下为属性值信息 String bdtext driver.findElement(By.cssSelector(#su)).getAttribute(name:value); System.out.println(百度一下按钮上的文字为bdtext); 2.5 获取当前页面标题 getTitle() String title driver.getTitle(); System.out.println(title title); 2.6获取当前页面URL getCurrentUrl() String url driver.getCurrentUrl(); System.out.println(url url); 三、窗口 对于程序来说它怎么来识别每一个窗口呢每个浏览器窗口都有一个唯一的属性句柄handle来表示那么就可以通过句柄来切换。 3.1 切换窗口 获取当前页面句柄 driver.getWindowHandle(); 获取所有页面句柄 driver.getWindowHandles() 切换当前句柄为最新页面 String curWindow driver.getWindowHandle(); SetString allWindow driver.getWindowHandles();for( String w : allWindow){if(w!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 关闭窗口 注意窗口关闭后driver 要重新定义 //关闭当前标签页 driver.close(); driver.close()表示关闭当前标签页driver.quit()表示关闭浏览器或者释放driver对象。 3.4 屏幕截图 自动化脚本一般部署在机器上自动的去运行如果出现了报错程序员是不知道的可以通过抓拍来记录当时的错误场景。 屏幕截图方法需要额外导入包 dependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.6/version /dependency File file ((TakesScreenshot)webDriver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(file,new File(filename)); //简单版本 File srcfile driver.getScreenshotAs(OutputType.FILE); FileUtils.copyFile(srcfile,new File(my.png));//高阶版本//获取截图时间需要精确到毫秒才不会发生截图覆盖 ListString times getTime();//⽣成的文件夹路径./src/test/autotest-2024-08-01/goodsbroser-20240801-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)); 四、等待 通常代码执行的速度比页面渲染的速度要快如果避免因为渲染过慢出现的自动化误报的问题呢可以使用selenium中提供的三种等待方法 4.1 强制等待 Thread.sleep() 优点使用简单调试的时候比较有效直接阻塞程序。 缺点影响运行效率浪费大量的时间。假如测试用例过多那么测试时间太长。 4.2 隐式等待 隐式等待是一种智能等待它可以规定在查找元素时在指定时间内不断查找元素。如果找到则代码继续执行直到超时没找到元素才会报错。 implicitlyWait()  参数Duration类中提供的毫秒、秒、分钟等方法 //隐式等待1000毫秒 driver.manage().timeouts().implicitlyWait(Duration.ofMillis(1000)); //隐式等待5秒 driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5)); 隐式等待 作用域 是整个脚本的所有元素。即只要driver对象没有被释放掉(driver.quit())隐式等待就⼀直生效。 优点智能等待作用于全局。 4.3 显示等待 显示等待也是一种智能等待在指定超时时间范围内只要满足操作的条件就会继续执行后续代码。 new WebDriverWait(driver, Duration.ofSeconds(3)).until($express) $press涉及到selenium.support.ui.ExpectedConditions包下的ExpectedConditions类 返回值boolean WebDriverWait foo new WebDriverWait(driver, Duration.ofSeconds(3)); foo.until(ExpectedConditions.elementToBeClickable(By.cssSelector(#id))); ExpectedConditions预定义方法的一些示例 elementToBeClickable(By locator)  用于检查元素的期望是可见的并已启⽤以便单击它。 textToBe(BylocatorString 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-topleft a:nth-child(1)), 新闻));if(ispass){System.out.println(测试通过);}else {System.out.println(测试失败); } 优点显示等待是智能等待可以自定义显示等待的条件操作灵活。 缺点写法复杂。 五、浏览器导航 5.1 打开网站 // 更⻓的⽅法 driver.navigate().to(https://selenium.dev); // 简洁的⽅法 driver.get(https://selenium.dev); 5.2 浏览器的前进、后退、刷新 driver.navigate().back(); driver.navigate().forward(); driver.navigate().refresh(); 六、弹窗 弹窗是在页面是找不到任何元素的这种情况使用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(); alert.dismiss(); 七、文件上传 点击文件上传的场景下会弹窗系统窗口进行文件的选择。 selenium无法识别非web的控件上传⽂件窗口为系统自带无法识别窗口元素但是可以使用sendkeys来上传指定路径的文件达到的效果是⼀样的。 WebElement ele driver.findElement(By.cssSelector(body div div input[typefile])); ele.sendKeys(D:\\selenium2html\\selenium2html\\upload.html); 八、浏览器参数设置 8.1 设置无头模式 默认情况下是有头模式无头模式需要手动设置一下。有头模式指的是自动化运行的时候过程以浏览器的窗口形式运行而无头模式不显示自动化过程只显示结果。 ChromeOptions options new Chrome0ptions(); options.addArguments(-headless);ChromeDriver driver new ChromeDriver(options); driver.get(https://www.baidu.com);driver.quit(); 8.2 设置浏览器加载策略 //三种策略 options.setPageLoadStrategy(PageLoadStrategy.normal); options.setPageLoadStrategy(PageLoadStrategy.eager); options.setPageLoadStrategy(PageLoadStrategy.NONE); 通常情况下不需要设置浏览器加载策略只有在极端情况下页面元素可见但页面还在加载资源的情况下才会使用。
http://www.dnsts.com.cn/news/14852.html

相关文章:

  • 贵州最好的网站建设推广公司阜阳微商城网站建设
  • 唐山网站制作服务公司食品网站策划
  • 如何建造网站链接做自媒体网站
  • 保险网站定制wordpress 代码规范
  • 网站做标题有用吗活动策划公司
  • 网站建设shzanen10个网站用户体验优化的研究结果
  • 建筑投标网站裤子seo关键词
  • 程序员做网站赚钱企业logo设计软件
  • 做恋视频网站糖果网站建设目的
  • 那个网站可以找人做设计广州seo效果
  • 电子商务网站建设侧重点快速搭建网页
  • 嘉兴网站建设费用wordpress首页生成静态
  • 返佣贵金属交易所网站建设网站建设的付款方式
  • 做淘宝联盟网站用数据库吗网站建设搜索
  • 图书馆网站建设的建议东城网站制作公司
  • 福州 网站设计手机app制作网站模板
  • 生产企业做网站有用吗关于港口码头发展建设的网站
  • dw建设的网站上传网络运维与安全
  • 物业公司网站建设有了域名如何建设网站
  • 网站表现形式信息化建设 公司网站
  • 设计网站页面好处优质专业建设申报网站
  • 包头教育云平台网站建设在线制作电子简历
  • 网站充值如何做post的成全视频免费观看在线看第6季高清
  • 南通市做网站wordpress更改主机名
  • 北京个人网站建设南昌网上服务
  • 企业网站买卖建设流程企业天眼查
  • 自己网站做虚拟币违法吗互联网保险的发展现状
  • 给银行做网站wordpress ajax插件
  • 郑州网站建设郑州网络推广忘记wordpress的账号和密码忘记
  • 丹东企业网站建设平台厦门做企业网站比较好的公司