Selenium - 无法访问表单中的输入

时间:2016-05-26 18:25:46

标签: java forms selenium

这是我的html,我正在尝试找到输入字段“j_username”,有没有人有解决方案,谢谢。

<head>
    <body>
        <!-- Google Tag Manager -->
        <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-    WS3MQZ" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
        <script> ..... </script>
        <!-- End Google Tag Manager -->
        <div id="pagetoplinks"/>
        <div id="sesMenuFrame">
        <!-- <html> <head> -->
        <script type="text/javascript"> ..... </script>
        <div id="loginframe">
            <div id="loginTitle">
            <div id="EmptyField" class="ui-widget" style="display: none">
            <form id="LoginVal" action="/oam/server/auth_cred_submit" method="post" onsubmit="return validateForm('LoginVal')">
                <div id="loginmain" class="bluetable">
                    <div id="j_usernameFormFieldDiv" class="formfield">
                        <div class="labelArea label ">
                        <span class="requiredSpacer"/>
                        <div class="fieldarea">
                            <input id="j_username" type="text" autocomplete="off" value="" size="" name="username"/>
                        </div>
                    </div>

我尝试了以下内容,它找到了iframe,但没有找到j_username的id。

driver.switchTo().frame( driver.findElement( By.tagName( "iframe" ) ) );
driver.findElement( By.id( "j_username" ) ).clear();
driver.findElement( By.id( "j_username" ) ).sendKeys( strUserName );

也尝试了这一点,两者都返回了NoSuchElementException。

driver.findElement( By.xpath( "//input[@id='j_username']" ) );

driver.findElement( By.xpath( "//html/body/div[3]/form/div[1]/div[1]/div[2]/input" ) );

想要查看问题所在,在第一行的表单前找到div标签,在为第二行添加时找不到表单。

driver.findElement( By.xpath( "//html/body/div[3]" ) ); // Finds it - just before form
driver.findElement( By.xpath( "//html/body/div[3]/form" ) ); // NoSuchElementException - for form

尝试返回表单元素,无法通过id找到它。

WebElement form = driver.findElement( By.id( "LoginVal" ) ); // NoSuchElementException - id of form
form.findElement( By.id( "j_username" ) );

尝试返回表单元素,按标记名查找表单,但在j_username

上失败
WebElement form = driver.findElement( By.tagName( "form" ) ); // Finds it - form
form.findElement( By.id( "j_username" ) ); // NoSuchElementException - for input

0 个答案:

没有答案