页面中有两个字段:用户名和密码(在下面的代码中用**突出显示)。需要使用 selenium 向其中输入数据。但是,除了 tabIndex 之外,这两个对象都具有相同的标识符元素。请帮助我了解如何识别元素(请参阅 html)。
请注意:下面的代码对我有用,但用户将无法看到在 GUI 中输入的数据。我希望在 UI 上看到数据。
谢谢,迈克
@FindBy(name="cams_cb_username")
private WebElement emailId;
@FindBy(name="cams_cb_password")
private WebElement password;
((JavascriptExecutor)DriverFactory.getDriver()).executeScript("arguments[0].setAttribute('value',arguments[1]);", emailId, "username");
((JavascriptExecutor)DriverFactory.getDriver()).executeScript("arguments[0].setAttribute('value',arguments[1]);", password, "pwd");
这是HTML。
<form action="/vito-mma/activateLogin.do" method="post" name="loginForm">
<input type="hidden" value="vitocom" name="cams_security_domain">
<input type="hidden" value="/vito-mma/showPlans.do" name="cams_original_url">
<input type="hidden" value="http" name="cams_login_config">
<input type="hidden" value="" name="cams_cb_partner">
<fieldset class="mma-signin">
<div class="clearfix">
<**input class="bigtext e-hint" type="text" value="" name="e_hint_dummy_input" size="25" autocomplete="off" tabindex="1" style="display: inline;"**>
<input class="bigtext e-hint" type="text" title="Email address" value="" tabindex="1" size="25" name="cams_cb_username" style="display: none; background-color: rgb(255, 255, 255);" autocomplete="off">
</div>
<div class="clearfix">
<**input class="bigtext e-hint" type="text" value="" name="e_hint_dummy_input" size="25" autocomplete="off" tabindex="2"**>
<input class="bigtext e-hint" type="password" title="Password" value="" tabindex="2" size="25" name="cams_cb_password" style="display: none; background-color: rgb(255, 255, 255);" autocomplete="off">
</div>
</fieldset>
<div class="indent">
</form>
注意: 用 Xpath 试过:没用。使用 IDE 记录用户名 (name="cams_cb_username")。用过这个 - 也没有用。