我正在测试我的应用程序的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
的子问题答案 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()应该做的伎俩