社区首页 >问答首页 >Selenium自动化测试中的HTMLUnitDriver返回错误( ChromeDriver没有)

Selenium自动化测试中的HTMLUnitDriver返回错误( ChromeDriver没有)
EN

Stack Overflow用户
提问于 2018-04-15 01:01:42
回答 1查看 685关注 0票数 1

目标:使用无头选项对登录页面进行硒测试。(HTMLUnitDriver优先)

我正在尝试使用HTMLUnitDriver自动登录到一个站点。

当我sendKeys到一个元素时,它会抛出一个错误。

代码语言:javascript
代码运行次数:0
复制
HtmlUnitDriver driver = new HtmlUnitDriver();
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
driver.get("https://bigData/login.jsp");
WebDriverWait usernameWait = new WebDriverWait(driver, 3);
usernameWait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@id=\"username\"]")));
driver.findElement(By.xpath("//input[@id=\"username\"]")).sendKeys("admin");

错误:

线程"main“org.openqa.selenium.ElementNotInteractableException:中的异常您只能与可见元素交互。

我对ChromeDriver也做了同样的尝试。很好用!它没有抛出这个异常。但我不能在里面使用无头的选择。

代码语言:javascript
代码运行次数:0
复制
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--headless");
WebDriver driver = new ChromeDriver(chromeOptions);

返回,

线程“主”org.openqa.selenium.TimeoutException中的异常:预期条件失败:等待由: By.xpath: //input@id="username"定位的元素的存在

只有在初始化chromeOptions时未定义chromeDriver时,才能正常工作。

代码语言:javascript
代码运行次数:0
复制
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--headless");
WebDriver driver = new ChromeDriver();

请指导我,这些情景可以是什么/建议一个替代方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-15 06:30:53

根据文档,ElementNotInteractableException是W3C异常,它表明尽管DOM树上存在一个元素,但它并不处于可以与之交互的状态。

您可以尝试的代码是:

代码语言:javascript
代码运行次数:0
复制
HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.CHROME ,true);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("https://bigData/login.jsp");
WebDriverWait usernameWait = new WebDriverWait(driver, 30);
usernameWait.until(ExpectedConditions.visibiltyOfElementLocated(By.xpath("//input[@id=\"username\"]")));
usernameWait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id=\"username\"]")));
driver.findElement(By.xpath("//input[@id=\"username\"]")).sendKeys("admin");  

试一试这段代码,然后告诉我状态。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49840226

复制
相关文章
如何提交自己的项目到Maven公共仓库 | 萌新学开源 02
在上一篇文章中,我介绍了自己的SpringBoot Starter项目,可以让我们使用注解的方式轻松地获取操作日志,并推送到指定数据源。
Rude3Knife的公众号
2021/12/13
2.3K0
如何提交自己的项目到Maven公共仓库 | 萌新学开源 02
手把手教你提交Jar包到Maven公共仓库 | 萌新写开源02
在上一篇文章中,我介绍了自己的SpringBoot Starter项目,可以让我们使用注解的方式轻松地获取操作日志,并推送到指定数据源。
蛮三刀酱
2021/12/14
1.2K0
手把手教你提交Jar包到Maven公共仓库 | 萌新写开源02
手把手教你提交Jar包到Maven公共仓库
在上一篇文章中,我介绍了自己的SpringBoot Starter项目,可以让我们使用注解的方式轻松地获取操作日志,并推送到指定数据源。
蛮三刀酱
2022/01/05
2.4K0
手把手教你提交Jar包到Maven公共仓库
Ubuntu之docker安装:
装docker毕竟一般是 CentOS 我之前在大二也是在GentOS上安装的docker,这节课的内容是已经完成过的,在征得老师同意后,我准备在ubuntu上安装一个docker。
十二惊惶
2024/02/28
4050
发布jar到Maven时遭遇gpg签名失败
有许久没维护自己开源的项目了,此次在修复BUG发布时遭遇失败,检查后发现原因是因为gpg签名失败,没办法换了MAC电脑有些操作不熟悉是有点郁闷的。
凡梦星尘
2024/11/20
1280
开源:上传 Jar 包至 Maven 中央仓库
最近我将服务发现组件开源了:cloud-discovery,分享一下 Jar 包上传中央仓库过程遇到的问题与总结。需要说明的是,在下面两篇文章中已经将步骤写的非常清楚了,本文主要记录的是我在操作过程中遇到的一些坑,以供参考。
杨同学technotes
2022/12/01
8110
ARP协议:地址解析协议
ARP(Address Resolution Protocol)是一种用于解析网络层的IP地址和链路层的物理地址之间关系的协议。它主要用于在局域网中查找目标设备的物理地址,以确保数据包能够正确地从源设备传递到目标设备。
人不走空
2024/02/20
6600
ARP协议:地址解析协议
Dev 日志 | 如何将 jar 包发布到 Maven 中央仓库
Maven 中央仓库并不支持直接上传 jar 包,因此需要将 jar 包发布到一些指定的第三方 Maven 仓库,比如:Sonatype OSSRH 仓库,然后该仓库再将 jar 包同步到 Maven ,本文详细记录整个发布、同步过程。
NebulaGraph
2019/12/12
1K0
Dev 日志 | 如何将 jar 包发布到 Maven 中央仓库
The GNU Privacy Guard
对比《连城诀》,第一步是「唐诗选辑」(不过用口水解密不够文雅),第二部是「唐诗剑法」(没有师傅认证亲传武功是不行的),最后才解密出「江陵城南偏西天宁寺大殿佛像向之虔诚膜拜通灵祝告如来赐福往生极乐」。 当然也有类似凌退思这样“密码字典暴力破解”的方法 :-) 所以我们的 GPG 钥匙长度要设置的长长长一些。
筱竼
2022/08/09
4.8K0
The GNU Privacy Guard
jenkins 邮件_邮件发送协议邮件接收协议
前面已经实现在jenkins上展示html的测试报告,接下来只差最后一步,把报告发给你的领导,展示你的劳动成果了。
全栈程序员站长
2022/09/20
2.4K0
jenkins 邮件_邮件发送协议邮件接收协议
手把手教你把Java SDK发布到中央仓库
写了个Java SDK(ava Library),想要让更多的猿媛使用,如何发布到中央仓库(Maven Central)呢?
许杨淼淼
2020/06/28
1.7K0
关于把自己的Jar包开源到Maven仓库的问题
首先要做的是申请上传资格,就是要在sonatype平台上进行申请。注册成功后,登录,然后会提示选择语言,这个时候就可以选择中文了,下文截图均为中文页面。
全栈开发日记
2022/05/13
7690
关于把自己的Jar包开源到Maven仓库的问题
地址解析协议ARP
IP地址(32位)和硬件地址(48位)之间不存在简单的映射关系。ARP协议解决IP地址与物理地址的映射,而RARP协议解决物理地址与IP地址的映射。
一个风轻云淡
2024/02/10
2640
Deepin15.11下apt报错
【注】命令中的 xxx 为报错中 NO_PUBKEY 后的 GPG Key 。命令中的 keyserver.ubuntu.com 为提供 GPG Key 对应的 GPG 验证文件的公钥服务器,目前国内可访问的公钥服务器列表如下:
hotarugali
2022/03/01
1.1K0
Ubuntu20.04下apt报错
【注】命令中的 xxx 为报错中 NO_PUBKEY 后的 GPG Key 。命令中的 keyserver.ubuntu.com 为提供 GPG Key 对应的 GPG 验证文件的公钥服务器,目前国内可访问的公钥服务器列表如下:
hotarugali
2022/02/28
1.2K0
UDP协议源码解析之接收
调用读取数据的函数前,我们要先调用bind绑定socket对应的地址信息,因为系统是根据地址和端口去查找一个socket的。由代码可以知道,入口没有什么逻辑,主要逻辑在udp层的实现代码中。代码的实现比较简单,就是从socket的接收队列中摘下数据。
theanarkh
2019/03/06
1.1K0
GPG基本使用方法
GnuPG是用于加密、数字签名及产生非对称匙对的软件。下载与安装方式:gpgtools
Huramkin
2018/09/17
1.8K0
GPG in Emacs
Pretty Good Privacy (PGP) 是一款诞生于 1991 年的,一款用于认证、加密的一款软件,现如今已经有了标准化协议 OpenPGP,最常用的实现是 GnuPG,一般提到 GPG 时都是指的 GnuPG。
飞驰的西瓜
2022/07/26
9780
GPG in Emacs
地址解析协议 ARP
ARP(Address Resolution Protocol,RFC 826)是根据IP地址获取物理地址的一个TCP/IP协议。主机通过将ARP请求广播到网络上的所有主机并接收返回消息来确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求时直接查询ARP缓存。
十二惊惶
2024/02/28
3830
地址解析协议 ARP
arp 地址解析协议
这个时候,就涉及到一个 arp缓存表(<ip,mac>),每个主机都有这么个缓存表,也是为了能够节省网络上arp报文的数量。(分动态项和静态项,动态项的话,就会如果太久没发送,2-10分钟,就会自动删除,原因是,怕人家更换了硬件)
forxtz
2020/10/10
1.1K0

相似问题

gpg: keyserver接收失败: keyserver错误

10

gpg: keyserver接收失败: No dirmngr

20

gpg: keyserver接收失败:没有数据

10

yay错误: gpg: keyserver接收失败:无名称

10

wget:获取响应错误:协议不支持的地址系列

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文