简体   繁体   English

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

[英]Want to focus element with cssSelector. How can i do?

Here is my css Selector codes 这是我的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();

They are working, and I want to focus these elements with Selenium. 他们正在工作,我想将这些元素集中在Selenium上。 How can I do this? 我怎样才能做到这一点?

Edit: 编辑:

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

And also this code is working, but always focuses the first item, which is not what I want. 而且此代码也有效,但是始终将第一项重点放在我不想要的东西上。

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

I want to focus just this button. 我只想关注这个按钮。

there are two say you can do it. 有两个人说你可以做到。 You can do it using webdriver code or javascript. 您可以使用webdriver代码或javascript来实现。 I guess using webdriver is much better as it uses native events. 我猜使用webdriver会更好,因为它使用了本机事件。 Following code shows how to do using 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();
}

if you want to do that using JavaScript . 如果您想使用JavaScript做到这一点。 This is how you need to modify your code. 这就是您需要修改代码的方式。

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

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM