【发布时间】:2011-01-11 08:38:54
【问题描述】:
我在启动 selenium 时遇到问题。实际上我的线程类在 run() 方法中有 selenium.start() 。所以当我使用下面的代码行时,
//some another class
class someclass{
ScrapeThread nidleThread = new ScrapeThread("nidleThread");
Thread scraper = new Thread(niidleThread);
scraper.start()
}
由于 thread.start() 方法在内部调用 run() 方法,所以在线程类的 run() 方法中,只有前两三行代码被执行,当它执行时来到 selenium.start() 并执行,然后 selenium 在启动时出现问题意味着我只能看到在 selenium remote 的命令历史记录中执行了两个命令,然后在那里被击中。
但是当我使用下面的代码并直接调用我的线程类的 run() 方法时
//some another class
class someclass{
ScrapeThread nidleThread = new ScrapeThread("nidleThread");
nidleThread.run();
}
在这里它工作正常,我得到了我想要的正确输出。
当我以正常方式(即通过调用 scrapper.start() 方法)执行线程时,启动 selenium 可能会出现什么问题?
//in thread class
run(){
selenium = new DefaultSelenium(config.getHost(), Integer.parseInt(config.getPort()), config.getBrowser(), config.getUrl());
selenium.start();
}
线程类的run()方法中的代码
公共无效运行(){
try {
System.out.println("in the run method");
scraper = siteToScrape.getSiteScraper();
scraper.setStartPageType(pageTypeToScrape);
scraper.setPageTypeToScrape(typeToScrape);
SocialParser parser = siteToScrape.getSiteParser();
selenium = new DefaultSelenium(config.getHost(), Integer.parseInt(config.getPort()), config.getBrowser(), config.getUrl());
selenium.start();
System.out.println("EXECUTED 1!!");//after this nothing is getting
//executed
Integer count = 0;
System.out.println("EXECUTED 2!!");
while (startUrl != null) {
System.out.println("EXECUTED 3!!");
HtmlPage homePage = new HtmlPage();
homePage.setCreatedBy(new String());
homePage.setCreatedon(new String());
homePage.setModifiedBy(new String());
homePage.setModifiedOn(new String());
homePage.setNoOfItemsFound(new String());
homePage.setOwnedBy(urlOwnedBy);
homePage.setPageType(scraper.getPageTypeToScrape());
homePage.setPageUrl(startUrl);
element = getInitialisedElement();
scraper.setNavigator(element.getNavigator());
scraper.setStartUrl(startUrl);
try {
scraper.initialize();//some more stuff
}catch (Exception e) {
e.printStackTrace();
}
【问题讨论】:
-
您能否提供 selenium 服务器给您的任何错误消息?
-
能否请您提供 Selenium 错误消息,以及启动 Selenium 的部分代码?另外,请更正代码格式(选择您的代码并按文本区域上方控制面板上的“{}”按钮)
-
@jerluc 我没有收到任何错误消息或异常。在 selenium 遥控器的命令历史记录框中,前两个命令被执行,然后它被击中。
-
对不起,我想我误解了你原来的问题。那么在 selenium 实例启动后,您尝试从 RC 执行哪些命令?
-
@jerluc 我正在尝试打开一些站点。for ex open("google.com")