硒不使用ID执行按钮单击-Java

时间:2018-09-13 10:15:59

标签: java selenium selenium-webdriver selenium-chromedriver

我正在尝试单击Google搜索按钮,但硒对我而言不起作用。

driver.findElement(By.id("lst-ib")).sendKeys("India");在工作,但是driver.findElement(By.id("gsr")).click();在工作。

替代方法可以是driver.findElement(By.id("lst-ib")).sendKeys(Keys.ENTER);,但我只想执行按钮单击。有什么原因不起作用?

private static void performButtonClickWithId() {
        driver.findElement(By.id("lst-ib")).sendKeys("India");
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        driver.findElement(By.id("gsr")).click();
    }

2 个答案:

答案 0 :(得分:3)

我认为您选错了IDgsr是整个Google页面<body>的ID,您应该这样做:

driver.findElement(By.name("btnK")).click();

这似乎是搜索按钮的名称属性。参见下图: Search button

答案 1 :(得分:1)

首先,您的搜索ID错误,其次,您可以使用XPath或@Pijotrek建议的名称

一些xpath如下:

driver.findElement(By.xpath("//input[@value='Google Search']")).click();

driver.findElement(By.xpath("//input[@value='Google Search' and @name='btnK']")).click();