我想从谷歌搜索获得前10个网址并尝试使用selenium rc将其记录到文件中我的代码如下
import java.util.List;
import java.io.PrintWriter;
import java.util.Collection;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;
public class GoogleSearch {
public static void main(String[] args) {
try
{
int count = 0, sel_count=0, code_google_count=0;
String link,sel_text="seleniumhq.org",code_google_text="code.google.com";
List<WebElement> results;
Selenium selenium = new DefaultSelenium("localhost",4444,"*firefox","http://www.google.co.in");
selenium.start();
selenium.open("/");
selenium.type("q", "selenium");
selenium.click("btnG");
Thread.sleep(3000);
Collection<WebElement> searchResults = ((WebElement) selenium).findElements(By.xpath("//ol[@id='rso']/li/div/h3/a"));
PrintWriter out = new PrintWriter("filename.txt");
for (WebElement webElement : searchResults)
{
link = webElement.getAttribute("href");
out.println(link);
}
out.close();
}
catch (Exception e) {
// TODO Auto-generated catch block
System.out.print(e);
}
}
}
但是当我尝试这个时,我得到了一个像
这样的错误java.lang.ClassCastException: com.thoughtworks.selenium.DefaultSelenium cannot be cast to org.openqa.selenium.WebElement
任何人都可以告诉我如何按照此错误继续
答案 0 :(得分:0)
我不完全确定你在这里尝试了什么:
Collection<WebElement> searchResults = ((WebElement) selenium).findElements(By.xpath("//ol[@id='rso']/li/div/h3/a"));
您尝试将WebDriver
类型的对象强制转换为WebElement
类型的对象。这不是必要的。
这应该适合你:
List<WebElement> searchResults = selenium.findElements(By.xpath("//ol[@id='rso']/li/div/h3/a"));
正如已经指出的那样,您实际上正在使用DefaultSelenium
,然后尝试针对它调用WebDriver
方法。