Selenium无法使用webdriver登录

时间:2017-05-10 17:56:31

标签: html selenium-webdriver

如何保护网站免受Selenium网络驱动程序的登录?

同时您可以手动输入登录表单,并且selenium代码的所有其他部分都可以使用,如何实现?

是否可以通过Selenium网络驱动程序登录此类网站?

<!-- login form -->
<form action="login.php?do=login" method="post" onsubmit="md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, 0)">
<script type="text/javascript" src="clientscript/vbulletin_md5.js?v=387"></script>
<table cellpadding="0" cellspacing="3" border="0">
<tr>
<td class="smallfont" style="white-space: nowrap;"><label for="navbar_username">Имя</label></td>
<td><input type="text" class="bginput" style="font-size: 11px" name="vb_login_username" id="navbar_username" size="10" accesskey="u" tabindex="101" value="Имя" onfocus="if (this.value == 'Имя') this.value = '';" /></td>
<td class="smallfont" nowrap="nowrap"><label for="cb_cookieuser_navbar"><input type="checkbox" name="cookieuser" value="1" tabindex="103" id="cb_cookieuser_navbar" accesskey="c" />Запомнить?</label></td>
</tr>
<tr>
<td class="smallfont"><label for="navbar_password">Пароль</label></td>
<td><input type="password" class="bginput" style="font-size: 11px" name="vb_login_password" id="navbar_password" size="10" tabindex="102" /></td>
<td><input type="submit" class="button" value="Вход" tabindex="104" title="Введите ваше имя пользователя и пароль, чтобы войти, или нажмите кнопку 'Регистрация', чтобы зарегистрироваться." accesskey="s" /></td>
</tr>
</table>
<input type="hidden" name="s" value="" />
<input type="hidden" name="securitytoken" value="1494435076-6acf057fb2e17e28bd5679c57501a85f896b4310" />
<input type="hidden" name="do" value="login" />
<input type="hidden" name="vb_login_md5password" />
<input type="hidden" name="vb_login_md5password_utf" />
</form>
<!-- / login form -->

2 个答案:

答案 0 :(得分:1)

您可以通过两种方式登录Selenium:

  1. 通过填写登录页面上的表单。这包括查找用户名和密码元素,并为您在测试数据库中创建的测试用户输入信息。

  2. 以编程方式登录系统的后端而不是使用UI。这仍然需要用户名和密码,应该只在测试环境中工作,语法取决于您使用的验证模块类型。

答案 1 :(得分:0)

在寻找一些例子后,我找到了这个参考。 How to valid a login page using Java and Selenium WebDriver?

请务必切换findElement(By。(Identifier))。

不确定这是否能立竿见影,但这是我要开始的地方。

祝你好运。

@Before
public void setup() throws MalformedURLException, UnknownHostException{
driver = new HtmlUnitDriver(true);
driver.get(System.getProperty("login.url"));
}

@Test
public void login(){
driver.findElement(By.name("vb_login_username")).sendKeys("login");
driver.findElement(By.name("vb_login_password")).sendKeys("password");     
driver.findElement(By.type("submit")).click();
}