Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查表单是否可见(WebDriver)?_Java_Selenium_Webdriver - Fatal编程技术网

Java 如何检查表单是否可见(WebDriver)?

Java 如何检查表单是否可见(WebDriver)?,java,selenium,webdriver,Java,Selenium,Webdriver,我有两种表格: <form action="" method="post" name="form1" id="form1" target="_self"> /// </form> <style> form#form2 { display: none; } </style> <form action="" method="get" name="form2" id="form2" target="_blank"> //// <

我有两种表格:

<form action="" method="post" name="form1" id="form1" target="_self">
///
</form>

<style>
form#form2 {
    display: none;
}
</style>
<form action="" method="get" name="form2" id="form2" target="_blank">
////
</form>

你有从开发者工具得到的真实呈现的html吗?如果有,你能粘贴它吗

试一试,代码未经测试,想法是如果selenium认为所有表单都显示了,那么我们应该尝试获取表单的css值或样式属性值,看看它们实际上是如何呈现的。(我怀疑您所做的selenium部分是正确的,但html样式是错误的。)

//遵循您的逻辑
WebDriver driver=新的HtmlUnitDriver();
列表表单=driver.findElements(By.cssSelector(“表单”);
对于(WebElement表单:表单){
如果(form.getCssValue(“display”)=“none”)中断;
//或者如果(form.getAttribute(“style”).包含(“display:none”))中断;
System.out.print(form.ToString()+“\n”);
}
//显示更多信息的版本
WebDriver driver=新的HtmlUnitDriver();
列表表单=driver.findElements(By.cssSelector(“表单”);
for(WebElement表单:表单){
System.out.print(form.ToString()+“\n”);
System.out.print(form.isDisplayed()+“\n”);//selenium如何确定
System.out.print(form.getCssValue(“display”)+“\n”);//获取css显示值
System.out.print(form.getAttribute(“style”)+“\n”);//获取所有样式值(如果存在)
System.out.print(“=====================================\n”);
}

css是否正确应用?只需检查是否需要
form#form2
?@NoobUnChained,很抱歉输入错误,我已更正。这解决了您的问题吗?@NoobUnChained,很遗憾,没有。这可能与您无关,但是,您能否将表单封装在一个表格中并尝试将css应用于?谢谢!我解决了我的问题。默认情况下,javascript已被禁用。当我编写代码时,我看到了一个异常(这个HtmlUnitDriver实例没有启用Javascript)。
WebDriver driver = new HtmlUnitDriver();
List<WebElement> forms = driver.findElements(By.cssSelector("form"));
for (WebElement form : forms) { 
   if (!form.isDisplayed()) break;
   System.out.print(form.ToString() + "\n");
}
<form action="" method="post" name="form1" id="form1" target="_self">
<form action="" method="get" name="form2" id="form2" target="_blank">
WebDriver driver = new HtmlUnitDriver(**true**);