2013-04-03 2 views
0

В настоящее время я тестирую графический интерфейс моего приложения, и я хотел знать, можно ли настроить фокус на WebElement?Установить фокус на WebElement?

Я использую Selenium 2.0 и webdriver.

Так что я ищу что-то подобное: driver.findElement(xxxx).setfocus();

Спасибо.

EDIT: Я alreardy испытание такого рода сложных вещей

// 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(); 

я ReD где-то, что щелчок фокусировать элемент, но в моем случае, ничего не работает. лол

PS: это суб-вопрос о том исходное сообщение Click on a suggestbox, webdriver

+0

используя любые рамки? или просто html css js application – daemonThread

+0

@daemon: да, я использую Selenium 2, я добавлю его на вопрос. Виноват. – e1che

+0

Можете ли вы сообщить мне, почему вам нужно сосредоточиться? Является ли это чем-то похожим на поле автозахвата, которое вы тестируете? – Hemanth

ответ

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 
0

В API WebDriver нет функции для фокусировки на элементе.

Если вы хотите это сделать, вам нужно будет написать JavaScript для установки фокуса, а затем использовать JavaScriptExecutor для запуска JavaScript.

0

Убедитесь, что вы не меняется кадр .... Другой мудрый .click() следует сделать трюк

3

Я обычно отправить пустой ключ к элементу таким образом он получает целенаправленный характер. Так, например:

element.send_keys "" 
1

Для того, чтобы установить фокус на элемент, вы можете использовать метод executeScript, как описано ниже:

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

После фокусировки вы можете легко использовать send_keys предоставляемые WebDriver API.

+0

Я попробую завтра, спасибо =) – e1che

Смежные вопросы