支持HtmlUnitDriver无头浏览器自动化
 
定位元素的方式:是可嵌套的
WebElement cheese = driver.findElement(By.id("cheese"));
WebElement cheddar = cheese.findElement(By.id("cheddar"));
 
* WebDriver 代表浏览器
* WebElement 表示特定的DOM节点(控件,例如链接或输入字段等)
 
为了稍微提高性能,我们应该尝试使用更具体的定位策略,有八种定位策略
 
 
class name :定位其类名包含搜索值的元素(复合类名不被允许)
 
使用定位选择器的一些提示
一般来说,如果HTML ID可用,唯一且始终可预测,那么它们是在页面上定位元素的首选方法。它们往往工作得很快,并且放弃了复杂的DOM遍历所带来的大量处理。
如果唯一ID不可用,则写入良好的CSS选择器是定位元素的首选方法。XPath和CSS选择器一样工作,但语法复杂且经常难以调试。尽管XPath选择器非常灵活,浏览器厂商通常不会对它们进行性能测试,而且速度会很慢。
基于链接文本和部分链接文本的选择策略具有缺陷,因为它们仅在链接元素上工作。此外,他们在WebDriver内部调用XPath选择器。
标记名称可能是定位元素的一种危险方法。页面上经常存在多个相同标签的元素。但这在调用findElements(By)方法查找返回元素集合时非常有用。
建议将您的定位器尽可能紧凑和可读。让WebDriver遍历DOM结构是一项代价昂贵的操作,越能缩小搜索范围,效果越好。
 
 
元素操作:
sendKeys方法设置元素的文本
JavaScript库来添加拖放功能
click方法单击一个元素
 
大多数驱动程序需要一个额外的可执行文件让Selenium与浏览器通信,即浏览器驱动,如运行Chrome需要chromeDriver
浏览器驱动的环境变量配置:
* 创建一个目录来放置可执行文件,例如 C:\ WebDriver \ bin或/ opt / WebDriver / bin
* 将该目录添加到PATH中:
* 在Windows上 - 以管理员身份打开命令提示符,然后运行以下命令将该目录永久地添加到您计算机上所有用户的路径中:
setx / m路径“%path%; C:\ WebDriver \ bin \”
* 在macOS和Linux上使用bash用户 - 在终端中:
export PATH = $ PATH:/ opt / WebDriver / bin >>〜/ .profile
* 您现在已准备好测试您的更改。关闭所有打开的命令提示符并打开一个新提示符。在上一步创建的文件夹中输入其中一个二进制文件的名称,例如:
chromedriver
如果您的PATH配置正确,您会看到一些与驱动程序启动有关的输出:
在端口9515上启动ChromeDriver 2.25.426935(820a95b0b81d33e42712f9198c215f703412e1a1)
只允许本地连接。
按下,您可以重新获得对命令提示符的控制Ctrl + C。
 
链接Chrome
要实例化Chrome / Chromium会话,您可以执行以下操作:
WebDriver driver = new ChromeDriver();
请记住,您必须将路径设置为chromedriver可执行文件。这可以使用以下行:
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
require "selenium-webdriver"
driver = Selenium::WebDriver.for :chrome

chromedriver被当作WebDriver远程服务器,它通过公开chrome的内部自动代理接口来指挥浏览器做什么

 
 
链接火狐
由于geckodriver是启动Firefox的新默认方式,因此您可以像Selenium 2一样实例化Firefox:
WebDriver driver = new FirefoxDriver();
require "selenium-webdriver"
driver = Selenium::WebDriver.for :firefox
如果您不想使用PATH设置geckodriver的位置,请以编程方式设置geckodriver二进制位置:
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");
也可以在运行时设置属性:
mvn test -Dwebdriver.gecko.driver=/path/to/geckodriver

selenium连接浏览器方式的更多相关文章

  1. Selenium系列(22) - 通过selenium控制浏览器滚动条的几种方式

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

  2. 使用Python + Selenium打造浏览器爬虫

    Selenium 是一款强大的基于浏览器的开源自动化测试工具,最初由 Jason Huggins 于 2004 年在 ThoughtWorks 发起,它提供了一套简单易用的 API,模拟浏览器的各种操 ...

  3. selenium之浏览器、元素、鼠标等操作总结

    1    控制浏览器 Selenium 主要提供的是操作页面上各种元素的方法,但它也提供了操作浏览器本身的方法,比如浏览器的大小以及浏览器后退.前进按钮等. 1.1  控制浏览器窗口大小 在不同的浏览 ...

  4. Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取

    区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...

  5. selenium的定位方式

    1.selenium的定位方式 selenium有18种定位方式,8种单数,8种复数,2种父类 2.8种单数定位方式 from selenium import webdriverimport time ...

  6. 杂项-自动化测试工具:Selenium(浏览器自动化测试框架)

    ylbtech-杂项-自动化测试工具:Selenium(浏览器自动化测试框架) Selenium 是一个用于Web 应用程序测试的工具.Selenium 测试直接运行在浏览器中,就像真正的用户在操作一 ...

  7. 使用Selenium通过浏览器对网站进行自动化测试和相关问题

    使用Selenium通过浏览器对网站进行自动化测试 自动化测试概念: 一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件. 广义上来讲 ...

  8. 自动化测试-selenium启动浏览器

    在自动化测试过程中,通过selenium启动浏览器时,可能需要加载插件(如测试用的firebug.或产品中要求必须添加某插件等).读取用户数据(自己浏览器的配置文件/别人直接给的浏览器配置文件).设置 ...

  9. Selenium +Chrome浏览器如何模拟手机操作

    Selenium +Chrome浏览器如何模拟手机操作 进入手机模式 打开谷歌浏览器,按F12,进入开发者模式,点击Toggle device toolbar,进入手机模式 设置Chrome的手机模式 ...

随机推荐

  1. Selenium_使用Select类对象处理下拉框(15)

    select标签的下拉框可以使用selenium的 Select模拟下拉框选择操作. Select需要导入才能使用,导入路径如下 from selenium.webdriver.support.ui ...

  2. ES6扩展运算符(...)

    来自为知笔记(Wiz)

  3. SQL高级优化(六)之MySQL索引

    一.索引概述 1. 索引的优点 ​ 为什么要创建索引?这是因为,创建索引可以大大提高系统的查询性能.如果不使用索引,查询时从第一行开始查询.如果使用了索引,所以就可以更加快速的找到希望的数据. 第一. ...

  4. Nginx日志通过Flume导入到HDFS中

    关注公众号:分享电脑学习回复"百度云盘" 可以免费获取所有学习文档的代码(不定期更新) flume上传到hdfs: 当我们的数据量比较大时,比如每天的日志文件达到5G以上 使用ha ...

  5. VM和CentOS7安装教程

    如果图片损坏,点击链接:https://www.toutiao.com/i6491076101664670222/ 安装软件 VMware_workstation_full_12.5.2 CentOS ...

  6. linux获取 GPG 密钥失败

    实质性问题就是自己系统没有yum的GPG密钥 查看自己系统版本 cat /etc/issue 登陆mirrors.163.com 找到自己系统对应的密钥  RPM-GPG-KEY-CentOS-3   ...

  7. kafka学习笔记(三)kafka的使用技巧

    概述 上一篇随笔主要介绍了kafka的基本使用包括集群参数,生产者基本使用,consumer基本使用,现在来介绍一下kafka的使用技巧. 分区机制 我们在使用 Apache Kafka 生产和消费消 ...

  8. CTF-sql-宽字节注入

    本文章主要涉及sql宽字节注入注入的原理讲解,如有错误,望指出.(附有目录,如需查看请点右下角) 一.首先介绍一下本篇文章所用到的知识点: 常用到的url编码: 空格:%20 单引号:%27 在sql ...

  9. 性能优化-使用双buffer实现无锁队列

    借助本文,实现一种在"读多写一"场景下的无锁实现方式 在我们的工作中,多线程编程是一件太稀松平常的事.在多线程环境下操作一个变量或者一块缓存,如果不对其操作加以限制,轻则变量值或者 ...

  10. 【get√】golang中实现从腾讯云CVM查询网卡流量的两种方法

    公众号文章链接 主要参考了以下位置的资料: 云服务器监控接口 腾讯云go-sdk example 方法一:使用腾讯云go-sdk go.mod文件中增加这样一行: github.com/tencent ...