我有一个代码应该循环来自文件的链接,但是在打开第一个链接后它就会卡住并且什么都不做。我有一个类似的代码,工作正常。我能想到的唯一区别是链接,但我不明白为什么链接会导致代码卡住
以下是初始驱动程序设置:
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");
}
但这并没有任何区别。
为什么代码被卡住的任何想法?卡住我的意思是在打开上面的链接后,没有其他事情发生。我希望有一条消息“显示此文本”,并打开下一个链接。
例如,在同一个类中,我有以下代码循环遍历文件的链接,似乎没有问题
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);
}
}
我对代码工作感到困惑,而不是类似代码。
由于
答案 0 :(得分:0)
如果它有帮助,这就是我初始化我的chrome webdriver的方式,也许这是一个错误?只是猜测:
//I declare the following globally just under 'public class"insernamehere"'
private WebDriver driver;
//I then declare the following in my @Before part
//of the test so that it initializes before every test.
System.setProperty("webdriver.chrome.driver", "C:/Users/ComputerName/Desktop/chromedriver2.23/chromedriver.exe");
driver = new ChromeDriver();
如果有帮助,请告诉我