我有一個代碼應該通過文件中的鏈接進行循環,但打開第一個鏈接後它會卡住,什麼都不做。我有一個類似的代碼,工作正常。我能想到的唯一的區別是鏈接,但我不明白爲什麼鏈接會導致代碼卡住Java Selenium卡在'driver.get'
這裏是最初的驅動程序設置:
System.setProperty("webdriver.gecko.driver",
"/home/ xxx /Documents/Selenium/geckodriver");
WebDriver driver = new FirefoxDriver();
下面是代碼該卡:
try {
Scanner input = new Scanner(new File("unsplashPicLink.txt"));
System.out.println("file readed");
while (input.hasNextLine()) {
linkFromFile = input.nextLine();
// this line gets printed
System.out.println(linkFromFile);
// opens the web page with the picture
driver.get(linkFromFile);
// the following text does not get printed
System.out.println("Show this text");
// code here for further processing
}
} catch (FileNotFoundException ex) {
System.out.println("file not found");
}
正如你看到的上面的代碼被粘住「driver.get(linkFromFile);」,展示了網站,並在那裏停留。
說我拉的鏈接如下:
https://images.unsplash.com/photo-1437650128481-845e6e35bd75?dpr=1&auto=format&crop=entropy&fit=crop&w=1199&h=800&q=80&cs=tinysrgb
我已嘗試添加:
linkFromFile= linkFromFile.substring(0, linkFromFile.indexOf("?"));
linkFromFile= linkFromFile.replace("https", "http");
這樣的鏈接看起來像:
http://images.unsplash.com/photo-1437650128481-845e6e35bd75
但它沒有任何區別。該頁面需要一段時間才能加載(如5-10秒)。
我想也補充:
try {
driver.get(linkFromFile);
} catch (Exception e) {
System.out.println("Error");
}
但它並沒有任何區別eihter。
任何想法爲什麼代碼卡住?通過卡住我的意思是,打開鏈接上面沒有其他事情發生。我期望的消息'顯示此文本',併爲下一個鏈接打開。
例如,在同一個班,我有以下的代碼,通過文件的鏈接循環,並似乎是沒有問題的
while (input.hasNextLine()) {
linkFromFile = input.nextLine();
driver.get(linkFromFile);
try {
List<WebElement> no = driver
.findElements(By.tagName("img"));
// code here for further processing
} catch (Exception e) {
System.out.println("error " + e);
}
}
我一直困惑與工作代碼和一個類似不。
感謝
你能後你是如何初始化的驅動程序? –
你是什麼意思卡住?有什麼異常嗎?還需要共享驅動程序初始化代碼 –
Jose&Saurabh,我編輯了代碼,添加了驅動程序初始化,我的意思是卡住了,這基本上是代碼無法完成。希望它是有道理的。 – Selrac