父/子:提交()或点击()?

时间:2017-08-17 16:08:25

标签: javascript selenium

我几天来一直在努力寻找以下方案的解决方案,希望有人可以提供一些帮助。让我解释,如果我在父页面上手动完成,在填写一些信息后,单击继续按钮。

<FORM NAME='user' ACTION="userConf.jsp" METHOD='post'>
    <FIELDSET><LEGEND>Enter User Information</LEGEND>

   <INPUT TYPE='button' VALUE='Continue' onClick='sendForm()'>

弹出一个子页面(当父页面仍在后台打开时),在查看父页面的信息后,单击子页面上的“继续”按钮。

 <FORM NAME='userConf' ACTION='user.jsp' METHOD='post'> 
    Do you want to continue?<BR>
    <INPUT TYPE='button' VALUE='Continue' onClick='createUser()'> 
  </FORM>

info将通过jsp发布到服务器,关闭一个Alert窗口(表示&#34;用户已创建。&#34;将返回父页面。

在将Selenium WebDriver与Java一起使用时,如果我在父页面上使用btnContinue.click(),则会弹出一个空白子窗口而不显示父级的任何信息,然后应用程序会抱怨&#34;您的会话已丢失&#34; 。如果我使用btnContinue.submit()或FormElement.submit(),会弹出一个子窗口,其中包含来自父页面的信息(就像我手动操作时那样),但父窗口消失了。然后单击(使用.click()或.submit())子页面上的“继续”按钮对创建用户没有任何作用,即使我可以告诉它是单击。我想这是因为父页面在那一刻不再存在。

尝试所有内容以单击父页面上的“继续”按钮,如:

JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("arguments[0].click();",btnContinue);
  or 
new Actions(driver).moveToElement(driver.findElement(By.xpath("//input [@value='Continue']"))).click().perform();

到目前为止没有任何作用。真的很感激,如果有人能告诉我如何使用Selenium Driver和Java来模拟手动点击。

提前多多感谢!

0 个答案:

没有答案