无法通过Selenium

时间:2018-06-24 02:00:07

标签: java selenium

这是我访问该被遗忘的网站https://portal.mcpsmd.org/guardian/home.html

时关于Stack Overflow的第二篇文章
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class WebAccessor  {
    public static void main(String[] args) {

        WebDriver driver = new HtmlUnitDriver();
        driver.get("https://portal.mcpsmd.org/public/");
        System.out.println(driver.getCurrentUrl());

        // Find the text input element by its name
        WebElement username = driver.findElement(By.id("fieldAccount"));
        WebElement password = driver.findElement(By.id("fieldPassword"));

        // Enter something to search for
        username.sendKeys("");
        password.sendKeys("");

        WebElement submitBtn = driver.findElement(By.id("btn-enter"));
        submitBtn.click();

        System.out.println(driver.getCurrentUrl());
        driver.quit();
    }
}

此代码已通过测试,可在Facebook上使用

我确定按下我的按钮时就像单击提交一样,网站URL从

更改。

https://portal.mcpsmd.org/public/https://portal.mcpsmd.org/guardian/home.html

当我输入用户名和密码时(出于明显的原因,不能公开实际的用户和密码),密码行实际上将另外20个左右的字符添加到密码字段的末尾。 (您可以通过输入任意随机的用户名和密码并单击提交来查看此内容。

这使我相信正在进行某种前端加密。有什么可行的登录方式?

非常感谢。

1 个答案:

答案 0 :(得分:1)

由于缺乏凭证,我的回答只是打赌。

但是我认为您应该在登录后重定向,并进行一些调整以避免出现异常:

import java.io.IOException;
import java.net.MalformedURLException;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class WebAccessor  {
    public static void main(String[] args) {

        WebClient WEB_CLIENT = new WebClient(BrowserVersion.CHROME);
        WEB_CLIENT.getCookieManager().setCookiesEnabled(true);
        HtmlPage loginPage;
        try {
            loginPage = WEB_CLIENT.getPage("https://portal.mcpsmd.org/public/");
            HtmlForm loginForm = loginPage.getFirstByXPath("//form[@id='LoginForm']");
            loginForm.getInputByName("account").setValueAttribute("YOURPASSWORD");
            loginForm.getInputByName("pw").setValueAttribute("YOURPASSWORD");

            loginForm.getElementsByTagName("button").get(0).click();

            HtmlPage landing = WEB_CLIENT.getPage("https://portal.mcpsmd.org/guardian/home.html#/termGrades");
            System.out.println(landing.getTitleText());
        } catch (FailingHttpStatusCodeException e) {
            // TODO Auto-generated catch block
            //e.printStackTrace();
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            //e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            //e.printStackTrace();
        }


    }
}

我的输出是:学生和家长登录。但是,如果您设置正确的属性,就可以了。