有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无需id/名称即可自动登录网站

我想用java自动登录一个网站。我已经做了很多研究,正在使用HtmlUnit实现它。但是,我想登录的特定网站没有id和name的值。有人能建议我在这里能做什么吗?检查登录/密码字段时,所有网站通常都有一个名称或id。这就是这个网站的样子

<div class="js-one-auth">
<input type="email" class="js-email form-control input-lg"     placeholder="Enter email">
<input type="password" class="js-password form-control input-lg" placeholder="Enter password">
<button type="submit" class="js-login btn btn-success btn-lg" style="width: 140px" disabled="">
<span class="vs-login-text">Log In</span>
<i class="vs-spinner fa fa-refresh fa-spin"></i></button>
<div class="js-caps-msg vs-login-msg alert alert-warning">Caps lock appears to be enabled</div>
</div>

通常,我找到的所有教程和建议在输入标签之间都有一个名称或id字段。我在参考了其他源代码后尝试实现了这一点,但get元素仅对name/id可用

public static void main(String[] args) throws Exception{

final WebClient webClient = new WebClient();
final HtmlPage page = webClient.getPage("Site address");

HtmlElement usrname = page.getElementByName("email");
usrname.click();
usrname.type("myusername@123.com");

HtmlElement psswrd = page.getElementByName("password");
psswrd.click();
psswrd.type("mypassword");

HtmlElement signin = page.getElementByName("submit");
signin.click();
System.out.println(page.getTitleText());
webClient.close();;

}

有什么建议可以帮你完成吗


共 (1) 个答案

  1. # 1 楼答案

    对该输入类型使用XPath

    1. 电子邮件XPath>//输入[@type='email']
    2. 密码Xpath>//输入[@type='password']

    或者

    1. 电子邮件Xpath>//输入[@class='js-email表单控制输入lg']
    2. 密码Xpath>//输入[@class='js-password表单控制输入lg']