0

嗨,我无法使用 Web 驱动程序运行 JavaScript,因为Unresolved compilation problem,任何人都可以指出我哪里出错了,这样我就可以在运行 selenium Web 驱动程序脚本时运行真正简单的 JavaScript 行吗?

package Check;

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class java {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        FirefoxDriver driver = new FirefoxDriver();
        driver.get("https://www.google.co.uk/search?q=dreams");
        WebDriver driver2 = new AnyDriverYouWant();
        JavascriptExecutor js;
        if (driver instanceof JavascriptExecutor) {
            js = (JavascriptExecutor)driver;
        }
        js.executeScript("function showAlert() { alert('success'); }; showAlert()");
        driver.quit();
    }
}

错误详情:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
AnyDriverYouWant cannot be resolved to a type

at Check.java.main(java.java:13)
4

4 回答 4

0

我需要强制页面等待并无条件地实例化变量,这是修改后的代码:

package Check;

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.firefox.FirefoxDriver;

public class jave {

    public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub
        FirefoxDriver driver = new FirefoxDriver();
        driver.get("https://www.google.co.uk/search?q=dreams");
        //WebDriver driver2 = new AnyDriverYouWant();
        JavascriptExecutor js = (JavascriptExecutor)driver;
        js.executeScript("function showAlert() { alert('success'); }; showAlert()");
        Thread.sleep(5000);
        driver.quit();
    }

}
于 2013-12-18T12:20:33.743 回答
0

我从这里下载了最新的 chrome 驱动程序和最新的 selenium jar 文件(2.44)并使用此代码,我可以使元素可点击:

// Find an element and define it
WebElement elementToClick = D9.findElement(By.xpath("xpathcode"));

// Scroll the browser to the element's Y position
((JavascriptExecutor) D9).executeScript("window.scrollTo(0,"+elementToClick.getLocation().y+")");

// Click the element
elementToClick.click();
于 2015-02-19T19:36:07.890 回答
0

看起来您正在尝试实例化一个不存在的类,即:

  WebDriver driver2 = new AnyDriverYouWant();

删除这条线(它看起来不像它需要的),它应该可以工作。

于 2013-12-18T11:29:53.807 回答
0

我今天遇到了这个确切的问题。它是通过显式编写 javascriptExecutor 类的导入语句来解决的

于 2017-03-17T11:23:59.663 回答