java - 单击在 selenium 驱动程序 java 中不起作用

标签 java selenium

我阅读了几个有关点击不起作用的问题,但仍然无法理解它不起作用的真正原因。我基本上正在等待页面加载,这样我就可以搜索模式的关闭按钮。我读到我需要启用 javascript,但根据使用 FF 驱动程序的 Selenium 文档,我认为这不是必需的在真实浏览器中运行并支持 JavaScript

private WebDriver driver;
    public Test() {
        System.setProperty("webdriver.gecko.driver", "geckodriver.exe");
        driver =new ChromeDriver();
        driver.get("https://www.site.site");
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

    }

    public void close50off(){
        WebElement element = driver.findElement(By.className("close-button"));
        if(element.isEnabled()){
            element.click();
        }
        else{
            System.out.println("Disable");
        }
    }

这是 HTML

<div class="close-button">
    <a class="closeModal">
        <img alt="Close Modal Button" style="border: 0;" src="/_ui/desktop/theme/images/close-button.png">
    </a>
</div>

但是它给了我这个错误

Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.29.461591 (62ebf098771772160f391d75e589dc567915b233), userDataDir=C:\Users\dturcios\AppData\Local\Temp\scoped_dir8916_4528}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=57.0.2987.133, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=}]
Session ID: 5d9cf82fc240a40a7bf3245bb8b1ce6f
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:638)
    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:274)
    at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:84)
    at testclasses.MyronTest.close50off(Test.java:38)
    at seleniumproject1.SeleniumProject1.main(SeleniumProject1.java:32)

最佳答案

你做错的是;您将驱动程序初始化为 Chromedriver,但在 setProperty() 方法中,您正在为 geckodriver 设置路径,因此将该路径更改为 chromedriver,如下所示:

System.setProperty("webdriver.chrome.driver", "your\path\to\chromedriver.exe");

如果您想使用 Firefox 进行测试,那么您需要设置 gecko 驱动程序的路径:并且您可以将您的网络驱动程序更改为:

driver =new FirefoxDriver();

关于java - 单击在 selenium 驱动程序 java 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43419720/

相关文章:

java - JPA/hibernate : Map many-to-many relationship when join table has own primary key

java - 获取形状相交的中心(2D)

java - 在 Selenium Webdriver (java) 中发送的日期出现错误

r - 使用 RSelenium 在 R 中抓取 Javascript

angular - 元素状态无效 : Element must be user-editable in order to clear it error trying to click and insert a date on a dropdown-toggle using Selenium

python - 下载文件时如何向下滚动页面以避免错误

java - 在java中获得两组之间对称差异的最佳方法是什么?

java - GWT CellTable 中的多列排序

java - Java 中的 String... args 和 String[] args 之间有什么区别吗?

java - Selenium 定位器 : Nested query with partial matches on multiple elements