我需要程序中给出的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();
}
}
答案 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个字符
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();
希望这有助于你