我是在这里学习的新手:P 可能是一个非常基本的问题,但我只是不知道如何询问或搜索它。
所以我决定使用 selenium 为 java 中的网页制作一个爬虫,我注意到如果我没有足够快地终止会话而不是冻结 =( 这是否意味着我必须经常调用 .quit() 并继续打开新的 WebDriver ? 或者有没有办法与网站持续互动?
比如:我想打开谷歌。键入“pie”并单击搜索,也许我不喜欢结果并希望搜索“apple pie”并继续这样做很长一段时间?
这就是我为我的游戏时间练习所做的。你可以利用它。
String[] location = new String[] {
"Los Angeles",
"Santa Barbara",
"San Jose"
};
// Some code
@Test
public void testSelServerDiceTest() throws Exception {
for (int i = 0; i < location.length; i++) { // manually added for loop
selenium.open("/");
selenium.type("id=FREE_TEXT", "selenium RC JUnit");
selenium.type("id=WHERE", location[i].concat(" CA"));
selenium.click("xpath=//*[@id=\"searchSubmit\"]");
selenium.waitForPageToLoad("30000");
verifyTrue(selenium.isTextPresent("Search results:"));
verifyTrue(selenium.isTextPresent("Search job title only"));
verifyEquals("JUnit", selenium.getText("css=div.undoLabel"));
verifyTrue(selenium.isTextPresent("selenium"));
verifyTrue(selenium.isTextPresent("Search results: 1 - 1 of 1"));
assertTrue(selenium.isTextPresent("Search results:"));
}
}
//Some more code
编辑
// webdriver code snippet
@Test
public void testRemoteWebDriverDiceTest() throws Exception {
for (int i = 0; i < location.length; i++) {
driver.get(baseUrl + "/");
driver.findElement(By.id("FREE_TEXT")).clear();
driver.findElement(By.id("FREE_TEXT"))
.sendKeys("selenium RC JUnit");
driver.findElement(By.id("WHERE")).clear();
driver.findElement(By.id("WHERE")).sendKeys(
location[i].concat(" CA"));
driver.findElement(By.xpath("//*[@id=\"searchSubmit\"]")).click();
try {
assertEquals("JUnit",
driver.findElement(By.cssSelector("div.undoLabel"))
.getText());
} catch (Error e) {
verificationErrors.append(e.toString());
}
}
}