Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法在TestNG中识别的表单元素

无法在TestNG中识别的表单元素
EN

Stack Overflow用户
提问于 2016-10-05 05:24:36
回答 2查看 65关注 0票数 0

我对硒很陌生。我试图编写一个脚本来打开一个应用程序,输入用户名和密码并登录。我尝试在firefox中使用selenium进行同样的操作。起作用了。但是,当我使用selenium和TestNG(JAVA)进行同样的操作时,我会得到以下错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    org.openqa.selenium.TimeoutException: Expected condition failed: waiting for visibility of element located by By.xpath: /html/body/form[1]/div[2]/table[2]/tbody/tr[4]/td/button (tried for 10 second(s) with 500 MILLISECONDS interval)
    Build info: version: 'unknown', revision: '3169782', time: '2016-09-29 10:24:50 -0700'

    Driver info: org.openqa.selenium.ie.InternetExplorerDriver
    Capabilities [{browserAttachTimeout=0, ie.enableFullPageScreenshot=true, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, pageLoadStrategy=normal, ignoreZoomSetting=false, ie.fileUploadDialogTimeout=3000, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0, ie.browserCommandLineSwitches=, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:9907/, javascriptEnabled=true, ignoreProtectedModeSettings=false, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss}]
    Session ID: a36f7287-5912-48c0-87b2-3d974262c634
        at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:80)
        at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:265)
        at com.nagest.nrt.NewTest.userLogin(NewTest.java:47)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

我页面的HTML片段是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                            <table>
                                <tr>
                                    <td>User Id: </td>
                                    <td><input type="text" name="USER" id="USER" onfocus="this.style.border='2px solid #3BB9FF';" onblur="this.style.border='2px solid #737373'" /></td>
                                </tr>
                                <tr>
                                    <td>Password: </td>
                                    <td><input type="password" name="PASSWORD" id="PASSWORD" onfocus="this.style.border='2px solid #3BB9FF';" onblur="this.style.border='2px solid #737373'" /></td>
                                </tr>
                                <tr>
                                    <td><input type="hidden" name="TARGET" id="TARGET" value="/epsweb/view/private/search/search.jsf" /></td>
                                </tr>
                                <tr>
                                    <td><button name="Logon" type="submit" onfocus="this.style.border='2px solid #3BB9FF';" onblur="this.style.border='2px solid #737373'">Logon</button></td>
                                </tr>
                            </table>

我的TESTNG java代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void userLogin(){
        driver.get(baseURL + "login url");
        //driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        //driver.findElement(By.id("USER")).sendKeys("aaa");
        waitVar.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"USER\"]"))).sendKeys("aaa");
       waitVar.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"PASSWORD\"]"))).sendKeys("123");;
    //  driver.findElement(By.name("USER")).sendKeys("aaa");
    //  driver.findElement(By.name("PASSWORD")).sendKeys("@123");
        waitVar.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("/html/body/form[1]/div[2]/table[2]/tbody/tr[4]/td/button"))).click();
        String strPageTitle = driver.getTitle();

    }

我试过使用多种组合,但现在起作用了。我甚至尝试从firefox复制代码并将其转换为java。XPATH正在从firebug中获取信息。

注意:表单元素在10秒前就可以看到。

更新:我尝试使用以下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 WebElement myelement=driver.findElement(By.id("USER"));
String tag=myelement.getTagName();
        System.out.println("====================="+tag);// ===============input
        myelement.sendKeys("aaaa");

系统线正在打印。但是,当我使用sendKeys()方法时,它会抛出异常。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    org.openqa.selenium.WebDriverException: Element is not displayed (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 234 milliseconds
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{browserAttachTimeout=0, ie.enableFullPageScreenshot=true, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, pageLoadStrategy=normal, ignoreZoomSetting=false, ie.fileUploadDialogTimeout=3000, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0, ie.browserCommandLineSwitches=, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:13799/, javascriptEnabled=true, ignoreProtectedModeSettings=false, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss}]
Session ID: 1c79492b-0fab-497e-9866-cbba060f6c8a
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:636)
    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:284)
...........

这个问题只发生在IE11中。我试过用铬,它工作正常。

EN

回答 2

Stack Overflow用户

发布于 2016-10-05 05:39:27

我想,你需要增加等待时间。从您的堆栈跟踪来看,您似乎使用了10秒作为等待时间。在这么短的时间内,无法看到登录按钮。增加等候时间可以解决你的问题。

票数 0
EN

Stack Overflow用户

发布于 2016-10-05 07:26:01

@Nageswaranm,使用webdriver并使用id、name或cssSelector查找元素。在使用xpath查找webelement方面,IE不如其他浏览器好。它在IE中很慢。还增加了webdriver等待到30秒。希望这能解决问题。

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

https://stackoverflow.com/questions/39875224

复制
相关文章
HTML表单__表单元素属性
看完“HTML表单__表单元素”那一节的同学会发现,同是input标签,type属性值不一样的时候,input类型完全不一样。type就是input的一个属性,除type之外,还有很多属性,接下来我们开始了解表单元素属性都有哪些?
呆呆
2021/09/28
3.1K0
HTML表单__表单元素属性
看完“HTML表单__表单元素”那一节的同学会发现,同是input标签,type属性值不一样的时候,input类型完全不一样。type就是input的一个属性,除type之外,还有很多属性,接下来我们开始了解表单元素属性都有哪些?
呆呆
2021/11/25
3K0
iScroll5 表单元素无法失焦 解决方法
iScroll5 表单元素无法失焦 解决方法 HTML5学堂:iScroll框架从4版本升级到5版本之后,很好的解决了滚动区域中表单元素不能聚焦的问题,但是,2014年年底测试的时候发现了5版本的一个
HTML5学堂
2018/03/12
1.3K0
iScroll5 表单元素无法失焦 解决方法
jquery表单属性筛选元素
$(":button") 选择所有按钮元素类型为按钮的元素。 等于$('input[type="button"]') $(":checkbox") 选择所有类型为复选框的元素。 等于$('input[type="checkbox"]') $(":checked") 选择所有勾选的元素。 $( "input:checked" ) $(":disabled") 选择说有被禁用的元素。 $("input:disabled").val("不能输入") $(":enabled"
用户1197315
2018/01/19
1.5K0
GO获取表单元素
1.如果使用Form[“username”]获取表单元素需调用ParseForm(),获取到的是数组 2.如果使用FormValue会自动调用ParseForm(),所以可以直接使用FormValue(“username”),获取到的是元素。等同于Form.Get 3.PostForm是获取POST表单当中的元素获取到的是数组,同样需要调用ParseForm(),PostFormValue获取的是元素 参考:https://github.com/astaxie/build-web-applica
苦咖啡
2018/04/28
1.6K0
Java 在 PDF 中添加表单域
PDF表单域是指用户在PDF文件中可以自主进行填写、选择等操作的区域,其主要目的是采集用户输入或选择的数据。常见的表单域包括文本框、单选按钮、复选框、列表框和组合框等。文本将介绍如何使用 Free Spire.PDF for Java在Java程序中创建PDF表单域。
用户1289394
2020/12/18
3.9K0
npm(cnpm) 安装报错:源文本中存在无法识别的标记
npm install --save @arcgis/core 报错: 源文本中存在无法识别的标记。 所在位置 行:1 字符: 24 + npm install --save <<<< @arcgis/core + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : UnrecognizedToken 解决:使用双引号或者单引号包住
tongyao
2022/06/09
1.1K0
<script>元素在XHTML中的用法
  编写XHTML代码的规则要比编写HTML严格得多,例如如下代码: 1 <script type="text/javascript"> 2 function compare(a, b){ 3 if(a < b) { 4 alert("A is less than B"); 5 } else if(a > b){ 6 alert("A is greater than B"); 7 } els
就只是小茗
2018/03/07
2.5K0
accept="image/*"无法提交表单
会导致打开窗口变慢,当文件较多时,文件的检验时间较长,这可能是Webkit的底层实现的bug。
2021/11/08
7250
flask 表单元素(flask 18)
WTForms: BooleanField : checkbox DateField: DateTimeField: FileField 文件上传 FloatField IntegerField RadioField :radio SelectField SelectMultipleField 多选下拉列表 SubmitField 提交按钮 StringField HiddenField PasswordField TextAreaField
用户5760343
2019/08/13
7780
解决kindeditor中ajax提交表单无法获取数据的问题
在上面使用了afterBlur 方法做了一个处理,该方法是当编辑框失焦的是触发的,然后再去做数据同步.
飞奔去旅行
2019/06/13
3.5K0
《《在Flutter和androidStudio中制作登录表单》》
《在Flutter和androidStudio中制作登录表单》 在本教程中,我将向您展示如何在 Flutter 和 Android studio 中制作漂亮的登录表单, 您将学习如何制作背景图像、如何在 Flutter中制作圆形按钮、如何添加一些不透明度以及如何添加图标到您的文本字段。 import 'dart:ffi'; import 'package:flutter/material.dart'; void main() => runApp(MaterialApp( home: LoginApp
徐建国
2021/08/03
2K0
常用的表单元素有哪些_h5新增的表单元素属性
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】
全栈程序员站长
2022/11/01
3.5K0
常用的表单元素有哪些_h5新增的表单元素属性
RxJS 在 Angular响应式表单中的使用
FormControl 的 valueChanges 属性和 statusChanges 属性包含了会发出变更事件的可观察对象。 例子
mafeifan
2019/03/04
5.2K0
javascript表单提交的内容显示在表格中
实现三个文本域的内容提交之后显示在表格中,代码直接用文本文件运行,记得后缀改为.html 运行结果
别团等shy哥发育
2023/02/27
7.5K0
javascript表单提交的内容显示在表格中
HTML5-新增表单元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action=""> <form action=""> 用户名:<input type="text" name="userName"><br> 密码:<input type="password" name="userPwd"> <br>
eadela
2019/09/29
7310
html5 表单元素示例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>html5中的表单</title> <script type="text/javascript"> var flag = true; function checkMail(){ var url = document.getElementById("url"); if (url.value==""){ //表单提交时 自定义验证信息
用户7718188
2021/11/02
1.5K0
html教程之form表单元素
<form action="post.php" method="post" target="_self" autocomplete="off" enctype="multipart/form-data" >
老雷PHP全栈开发
2020/07/02
2.1K0
链表----在链表中添加元素详解
1.2对于链表来说,若想访问链表中每个节点则需要把链表的头存起来,假如链表的头节点为head,指向链表中第一个节点,如图:
wfaceboss
2019/04/08
2.7K0
链表----在链表中添加元素详解
使用TestNG中HardAssert和SoftAssert断言
第一步:发起请求 第二步:断言响应状态是否200,如果成功继续 第三步:断言响应时间是否符合标准(非必须) 第四步:断言响应数据是否正确,一般的做法是判断某个值是否相等或者包含关系。
桑鱼
2020/04/23
1.2K0

相似问题

TestNG- Intellij无法识别的功能

12

熊猫识色

10

在Jenkins上运行Maven Webdriver Testng测试,无法识别的错误

20

数组中无法识别的元素。

38

无法在中安装TestNG

71
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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