想用cssSelector聚焦元素。我能怎么做?

时间:2017-04-18 09:49:00

标签: javascript jquery css selenium

这是我的css选择器代码

driver.findElement(By.cssSelector("button[class='btn-link'][data-sugg-technik='append_numbers']")).click(); 

driver.findElement(By.cssSelector("button[class='btn-link'][data-sugg-technik='make_pairs']")).click();

他们正在工作,我想用Selenium关注这些元素。我怎么能这样做?

编辑:

js.executeScript("document.querySelector('button,btn-link,make_pairs).focus();");

此代码也正常工作,但始终关注第一项,这不是我想要的。

<li>
  <button class="btn-link" data-sugg-sources="email,full_name" data-sugg-technik="make_pairs">AlZehraala16</button>
</li>

我想只关注这个按钮。

1 个答案:

答案 0 :(得分:0)

有两个人说你可以做到。你可以使用webdriver代码或javascript来做到这一点。我想使用webdriver会更好,因为它使用原生事件。以下代码显示了如何使用webdriver。

@Test
public void focusElement(){
    WebDriver driver = new FirefoxDriver();
    driver.get("https://google.com");
    driver.manage().window().setSize(new Dimension(1000,300));
    WebElement searchBox = driver.findElement(By.name("q"));
    Actions actions = new Actions(driver);
    actions.moveToElement(searchBox).build().perform();
}

如果您想使用 JavaScript 执行此操作。这是您需要修改代码的方式。

public void focusElement(WebElement element){
    if (driver instanceof JavascriptExecutor) {
        ((JavascriptExecutor) driver).executeScript("arguments[0].focus();", element);
    }

}