Selenium没有取消网站上的相同HTML

时间:2015-03-02 00:50:29

标签: java html selenium webdriver

我正在开发一个连接到成绩查看器的项目,并从网站中删除html。然而,当它这样做时,它似乎正在失去一些东西。我正在连接到页面并使用Selenium WebDriver打印Web源代码,但它拉出的html与我在页面上看到的html略有不同。这里和那里只缺少一些小块。这是我的代码:

    //get into frame
    driver.switchTo().frame(driver.findElement(By.id("sg-legacy-iframe")));//get inside iFrame grades are held in   
    WebElement full = driver.findElement(By.id("btnView"));
    full.submit();//click "show full view button"

    //Print out source
    PrintWriter pw = new PrintWriter(new FileWriter(new File("grades.txt")));
    pw.println(driver.getCurrentUrl());//confirms the driver is on the correct page
    pw.println((driver.getPageSource()));//prints out html
    pw.close();

我怀疑在页面和iFrame之间切换时可能是某种cookie问题,但我真的不知道。我也有一个正确的HTML代码的副本,它应该是获取它的实际输出,但它们很大,不适合身体。这些是HTML预期和输出的链接,任何机密信息都会更改。主要问题是找不到“AssignmentClass”div。

Desired HTML Output(HTML of the site)

HTML being output by my program

如果有人能说清楚为什么会发生这种情况或如何解决,我会永远爱你。

1 个答案:

答案 0 :(得分:1)

在我过去的一个项目中,我使用getAttribute()来获取html的来源。那么这些方面的东西,你已经尝试过了吗?

driver.switchTo().frame(driver.findElement(By.id("sg-legacy-iframe")));
WebElement full = driver.findElement(By.id("btnView"));
full.submit();//click "show full view button"
WebElement body = driver.findElement(By.tagName("body"));

//Print out source
PrintWriter pw = new PrintWriter(new FileWriter(new File("grades.txt")));
pw.println(driver.getCurrentUrl());//confirms the driver is on the correct page
pw.println(body.getAttribute("innerHTML"));//prints out html
pw.close();