将重点放在WebElement上?

时间:2013-04-03 08:40:48

标签: java selenium selenium-webdriver

我正在测试我的应用程序的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:这是原始帖子Click on a suggestbox, webdriver

的子问题

5 个答案:

答案 0 :(得分:4)

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

element.send_keys ""

答案 1 :(得分:2)

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

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

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

答案 2 :(得分: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

答案 3 :(得分:0)

WebDriver API中没有任何功能可以将焦点设置在元素上。

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

答案 4 :(得分:0)

确保您没有更换框架.... 其他明智的.click()应该做的伎俩