ByChained是一个存储By数组的类,和ByAll的区别就是ByChained能够把子元素也存储起来。

ByChained应该也是可以实现远程测试的。

import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.SearchContext;
import org.openqa.selenium.WebElement;import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class ByChained extends By implements Serializable {private static final long serialVersionUID = 1563769051170172451L;private By[] bys;public ByChained(By... bys) {this.bys = bys;}@Overridepublic WebElement findElement(SearchContext context) {List<WebElement> elements = findElements(context);if (elements.isEmpty())throw new NoSuchElementException("Cannot locate an element using " + toString());return elements.get(0);}@Overridepublic List<WebElement> findElements(SearchContext context) {if (bys.length == 0) {return new ArrayList<>();}List<WebElement> elems = null;for (By by : bys) {List<WebElement> newElems = new ArrayList<>();if (elems == null) {newElems.addAll(by.findElements(context));} else {for (WebElement elem : elems) {newElems.addAll(elem.findElements(by));}}elems = newElems;}return elems;}@Overridepublic String toString() {StringBuilder stringBuilder = new StringBuilder("By.chained(");stringBuilder.append("{");boolean first = true;for (By by : bys) {stringBuilder.append((first ? "" : ",")).append(by);first = false;}stringBuilder.append("})");return stringBuilder.toString();}}

selenium中ByChained方法相关推荐

  1. selenium中调用方法chrome maximize_window() 无法生效,截图的效果不完整

    错误:browser.set_window_maxsize() 正确:broser.set_window_size(1280, 1000) 这样才能将窗口截完

  2. selenium中的三种等待方法

    在selenium中,当我们定位的元素由于网络原因还没加载出来,浏览器找不到我们要定位的元素就会报错.等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,常用的等待方法有: sleep() -- ...

  3. Selenium中元素定位方法详细介绍

    一.元素定位基本方法 1.如何进行元素定位? 元素:由标签头 + 标签尾 + 标签头和标签尾包括的文本内容: 元素的信息就是指元素的标签名及元素的属性: 元素的层级结构就是指元素之间相互嵌套的层级结构 ...

  4. 教你两种python selenium保存图片的方法

    大家好,本篇文章主要讲的是python selenium保存图片最好的两种方法,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下 selenium爬取页面时经常遇到要保存图片的需求,通常的做法是 ...

  5. python isnumeric函数用法_Python中isnumeric()方法的使用简介

    Python中isnumeric()方法的使用简介 更新时间:2015年05月19日 09:35:06 投稿:goldensun 这篇文章主要介绍了Python中isnumeric()方法的使用,is ...

  6. selenium查找文本_在Selenium中查找具有链接文本和部分链接文本的元素

    selenium查找文本 Selenium中CSS定位器是一个基本概念,每个旨在使用Selenium执行自动化测试的测试人员都应该意识到这一点. 在Selenium中充分使用CSS定位器可以帮助您以更 ...

  7. Selenium Java教程– Selenium中的类名定位器

    Selenium中CSS Locator是编写脚本的最重要方面之一. 如果您无法通过使用Selenium中的任何CSS定位器来定位元素,那么精通Selenium自动化将是一项艰巨的任务. 硒提供多种定 ...

  8. chrome webdriver_(最新版)如何正确移除Selenium中的 window.navigator.webdriver

    摄影:产品经理产品经理的三文鱼炒饭 在<一日一技:如何正确移除Selenium中window.navigator.webdriver的值>一文中,我们介绍了在当时能够正确从Selenium ...

  9. 教你轻松截获 Selenium 中的 Ajax 数据

    之前我们介绍了 ajax-hook 来实现爬虫的过程中截获 Ajax 请求,可以看这篇文章如何用 Hook 实时处理和保存 Ajax 数据,在这里再另外介绍一个工具 BrowserMob Proxy, ...

最新文章

  1. <笔记1>matplotlib绘图工具笔记
  2. java面向对象(类与对象,局部变量成员变量,基本类型和引用类型作为参数传递)...
  3. 【网络协议】TCP中的四大定时器
  4. 0010服务器无对应信息,查看云服务器信息
  5. Python数据库使用-SQLite
  6. 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件...
  7. Java并发编程实战~不安全的单例
  8. 小困惑,关于 Serverless 函数计算的字体安装
  9. android x86 arm translator,让x86的android模拟器能模拟arm架构系统
  10. 【Java】什么是多态?多态的实现机制是什么?
  11. Java中Arrays类的两个方法:deepEquals和equals
  12. 51最小系统板+STC89C52芯片流水灯
  13. 机器人-笛卡尔空间轨迹规划
  14. 【超详细word排版】页眉:宋体五号,居中排列。左面页眉为论文题目,右面页眉为章次和章标题。页眉底划线的宽度为0.75磅。 页码:宋体小五号,排在页眉行的最外侧,不加任何修饰。
  15. 【getchar】在C语言中getchar的使用方法和读取规则
  16. NLP-知识搭建聊天系统详细教程
  17. MySQL索引及视图
  18. 看看这个自动生成诗的网站http://www.dopoem.com
  19. python万年历实验报告_Python编程——万年历
  20. 用token实现单点登录

热门文章

  1. 虹科分享 | 集中管理的安全USB驱动器的好处
  2. 【搜索+DP】codevs1066-引水入城
  3. 小程序:扫二维码跳转小程序
  4. 腾讯汤道生:面向数实融合新世界,开发者是最重要的“建筑师”
  5. 赋能 打造应对不确定性的敏捷团队 pdf_周末荐书 | 赋能:打造应对不确定性的敏捷团队...
  6. 头皮溢脂性皮炎推荐联合治疗:采乐50ml+希尔生100g(请看详情页)维生素B2维生素B6...
  7. 华为:求生存是当前主线 下阶段重点 to B数字化
  8. VMware虚拟机下载与安装
  9. 「运维有小邓」系统日志管理软件
  10. 又是好久不见的第五次