我正在开发一个连接到成绩查看器的项目,并从网站中删除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
如果有人能说清楚为什么会发生这种情况或如何解决,我会永远爱你。
答案 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();