Java selenium getPageSource不能正常工作

时间:2015-07-09 03:21:20

标签: java selenium selenium-firefoxdriver

我需要程序中给出的url源代码。但该程序返回一些json数据而不是整个页面源。有什么问题??

public class selenium
{
public static void main(String[] args)
{
    selenium.loadPage("http://photos.filmibeat.com/celebs/kajal-aggarwal/photos-c14-e13421-p592995.html");
}
public static void loadPage(String url)
{

    WebDriver driver = new FirefoxDriver();

    driver.get(url);

    String html = driver.getPageSource();

    System.out.println(html);

    driver.quit();        

}
}

3 个答案:

答案 0 :(得分:2)

问题是您过早地获取页面源 - 页面尚未加载。使用Explicit Wait等待页面上的特定元素变为可见。

例如,等待照片列表块变为可见:

WebDriverWait wait = new WebDriverWait(webDriver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("photoListBlock"));

答案 1 :(得分:2)

上述问题可由隐式显式等处理。 在这里,我尝试使用Implicit等待您的代码。请试试这个。它使用以下代码为我工作。

Error: Apache shutdown unexpectedly.
12:42:29 This may be due to a blocked port, missing dependencies, 
12:42:29 improper privileges, a crash, or a shutdown by another method.
12:42:29 Press the Logs button to view error logs and check
12:42:29 the Windows Event Viewer for more clues
12:42:29 If you need more help, copy and post this
12:42:29 entire log window on the forums

答案 2 :(得分:2)

我只是在@alecxe上添加更多信息答案alecxe提供的解决方案工作正常

eclipse的控制台输出大小默认只有80000个字符

enter image description here

Window > Preferences,转到Run/Debug > Console section >,然后停用limit console option

或将数据写入文件

    File file = new File("path/filename.txt");
    FileWriter fw = new FileWriter(file.getAbsoluteFile());
    BufferedWriter bw = new BufferedWriter(fw);
    bw.write(content);
    bw.close();

希望这有助于你