这是我的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>
我想只关注这个按钮。
答案 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);
}
}