我是使用Selenium WebDriver自动化测试用例的新手 . 到目前为止(使用Selenium和Java),我可以打开测试网站,输入用户名和密码,然后登录 . 但是,登录后,用户会被重定向到屏幕,其中必须有安全警告在他们可以访问实际网站之前接受 . 为此,他们必须单击名为“我同意”的按钮 . 我无法让Selenium点击按钮,没有它,我无法到达网站的其他部分进行自动化 . 这是按钮的HTML:
<form name="landingHandlerSF" method="post" action="/apps/bap/secLandingHandler.do">
<input name="userAgreedTerms" value="" type="hidden">
<input name="submit" value="landing" type="hidden">
<input name="buttonAction" value="I Agree" onclick="setValue('agreetoTerms', 'Y')" type="submit">
</form>
这是我尝试过的代码(不起作用):
WebElement button = driver.findElement(By.name("buttonAction"));
button.click();
有人可以帮我这个吗?
2 回答
根据我的理解,页面重定向到新的html页面,但驱动程序将指向父页面(在您的情况下为登录页面),因此您可能必须切换到
child window
才能单击我同意按钮 .以下代码将驱动程序从当前窗口(即登录窗口)切换到新窗口(即安全警告) . 点击“我同意”后,安全警告将关闭,驱动程序将自动切换回来
如果它没有导航到新页面,那么它必须在某些
iframes
下,在这种情况下,您可能需要切换到框架并单击按钮 .希望这会奏效 . 试试这个,让我知道发生了什么 .
您是否尝试将JavaScript代码注入浏览器?
要么