尝试打开网页并填写表单。我能够成功打开父表单并进行身份验证,然后单击我要填写的表单。
在这个表单上,我尝试选择字段(PF_5
),Eclipse告诉我元素不可见。
网站的相关代码在这里。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>RV Roster Form Version 205.0</title>
<style id="DateInputStyle" type="text/css"></style>
</head>
<link type="text/css" rel="stylesheet" href="/PresentationServer/Content/css/Common.css?4.5.3.5" />
<body>
<div id="pf_form" class="pf_formcontainer">
<form id="PF_1" class="form formBoxShadow" style="height:1600px;width:1800px;display:none;behavior: url('http://app.perfectforms.com/pie.htc');">
<div Id="PF_4Container" class="PageContainer" class="PageContainer" style="left:0px;top:0px;z-index:0;position:absolute">
<div tabindex="" title="" id="PF_4" name="PF_4" class=" page " style="width:1800px;height:1600px;background-color:#ffffff;">
<input id="PF_5" name="PF_5" type="text" MaxLength="99" value="" class=" textinput " onclick="return false;"
我看到PF_5是我想要选择的字段,所以我使用我的代码等待并选择它:
WebDriverWait wait = (new WebDriverWait(driver, 30));
WebElement input =
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("PF_5")));
如果我尝试向其发送密钥,我会收到该元素不可见的错误。
测试时,浏览器选项卡位于前台,正如预期的那样,但我并不是100%确定浏览器选项卡是搜索该元素的选项卡。
很抱歉这么迟钝,但我已经死路一条,需要一些指导。
表格可在此链接公开访问:
http://app.perfectforms.com/PresentationServer/Form.aspx/Play/FdjigAcE?f=FdjigAcE
答案 0 :(得分:0)
好的,所以看起来脚本没有看到新标签,即使它在脚本运行时位于前面。我不得不使用下面的代码切换:'
String oldTab = driver.getWindowHandle();
driver.switchTo().frame("MTAzNzg1");
driver.findElement(By.id("PF_51")).click();
ArrayList<String> newTab = new ArrayList<String>
(driver.getWindowHandles());
newTab.remove(oldTab);
// change focus to new tab
driver.switchTo().window(newTab.get(0));
感谢所有帮助我找到这个的人!