1

我目前正在测试我的应用程序的 GUI,我想知道是否可以将焦点设置为 WebElement ?

我正在使用 Selenium 2.0 和 webdriver。

所以我正在寻找类似的东西:driver.findElement(xxxx).setfocus();

谢谢你。

编辑:我已经测试过那种棘手的事情

// getting the element WebElement 
eSupplierSuggest = driver.findElement(By.xpath("..."));

//get le location and click 
Point location = eSupplierSuggest.getLocation();
new Actions(driver).moveToElement(eSupplierSuggest, location.x, location.y).click();

//or

//directly perform
new Actions(driver).moveToElement(eSupplierSuggest).click().perform();

我在某处红色单击焦点元素,但在我的情况下,没有任何效果。哈哈

PS:这是该原始帖子的子问题单击建议框,webdriver

4

5 回答 5

6

我通常会向元素发送一个空键,以便它获得焦点。例如:

element.send_keys ""
于 2013-04-17T03:33:42.473 回答
2

为了将焦点设置在元素上,您可以使用 executeScript 方法,如下所述:

JavascriptExecutor js;
js.executeScript ("document.getElementById('x').focus()");

设置焦点后,您可以轻松使用 webdriver api 提供的 send_keys。

于 2013-05-30T12:54:43.467 回答
0

WebDriver API 中没有将焦点设置在元素上的函数。

如果你想这样做,你必须编写一些 JavaScript 来设置焦点,然后使用 JavaScriptExecutor 来运行 JavaScript。

于 2013-04-04T13:28:13.573 回答
0

尝试使用 cssSelector 进行自动建议单击,如下所示,如果您仍然遇到问题,请告诉我。

 // supplier ops, i find and type data into the input
    WebElement eSupplier = driver.findElement(By.id("supplier:supplierOps_input"));
    eSupplier.sendKeys("OPS1");
    sleep(5); // wait the suggestbox

    // i find the suggestbox
    WebElement eSupplierSuggest = driver.findElement(By.cssSelector("css path of that specific value in the auto suggestion box"));
    eSupplierSuggest.click();
    sleep(5); // wait the refresh for the next field supplierAddress
于 2013-04-03T10:14:02.017 回答
0

确保您没有更改框架....否则 .click() 应该可以解决问题

于 2013-04-10T12:13:05.923 回答