Selenium web驱动程序 - 找不到表单字段

时间:2017-08-07 21:11:20

标签: javascript html forms selenium selenium-webdriver

尝试打开网页并填写表单。我能够成功打开父表单并进行身份验证,然后单击我要填写的表单。

在这个表单上,我尝试选择字段(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

1 个答案:

答案 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));

感谢所有帮助我找到这个的人!