1

我有一个像硒的webdriver自动完成

<input id="idForm:j_idt21Input" class="rf-sel-inp" type="text" value="Начните ввод" name="idForm:j_idt21Input" autocomplete="off"> 

输入的div变种

<div id="idForm:j_idt21Items"> 
<div id="idForm:j_idt21Item0" class="rf-sel-opt">Все</div> 
<div id="idForm:j_idt21Item1" class="rf-sel-opt">Domosti Main (Domosti Main)</div> 
<div id="idForm:j_idt21Item2" class="rf-sel-opt rf-sel-sel">N&K (N&K)</div> 
<div id="idForm:j_idt21Item3" class="rf-sel-opt">АГМ (АГМ)</div> 
<div id="idForm:j_idt21Item4" class="rf-sel-opt">АЕС Групп (АЕС Групп)</div> 
<div id="idForm:j_idt21Item5" class="rf-sel-opt">АРКО (АРКО)</div> 
<div id="idForm:j_idt21Item6" class="rf-sel-opt">АТМ-комплект (АТМ-комплект)</div> 
<div id="idForm:j_idt21Item7" class="rf-sel-opt">Авита (Авита)</div> 
<div id="idForm:j_idt21Item8" class="rf-sel-opt">Аква С. (Аква С.)</div> 
<div id="idForm:j_idt21Item9" class="rf-sel-opt">Акваарт-М (Акваарт-М)</div> 
<div id="idForm:j_idt21Item10" class="rf-sel-opt">Актив групп (Актив групп)</div> 
<div id="idForm:j_idt21Item11" class="rf-sel-opt">Алан-Трейд (Алан-Трейд)</div> 
<div id="idForm:j_idt21Item12" class="rf-sel-opt">Алекон (Алекон)</div> 
<div id="idForm:j_idt21Item13" class="rf-sel-opt">Алекс трейд (Алекс трейд)</div> 
<div id="idForm:j_idt21Item14" class="rf-sel-opt">Альт-М (Альт-М)</div> 
<div id="idForm:j_idt21Item15" class="rf-sel-opt">Альфа (Альфа)</div> 
<div id="idForm:j_idt21Item16" class="rf-sel-opt">Ансан (Ансан)</div> 
<div id="idForm:j_idt21Item17" class="rf-sel-opt">Ария Текстиль (Ария Текстиль)</div> 
<div id="idForm:j_idt21Item18" class="rf-sel-opt">Арреал 2000 (Арреал 2000)</div> 
</div> 

我试图

webDriver.findElement(By.xpath("//td[text()='Поставщики']/following-sibling::td//input[contains(@id, 'Input')]")).sendKeys("Поливалент"); 
webDriver.findElement(By.xpath("//td[text()='Поставщики']/following-sibling::td//input[contains(@id, 'Input')]")).sendKeys(Keys.ARROW_DOWN); 
webDriver.findElement(By.xpath("//td[text()='Поставщики']/following-sibling::td//input[contains(@id, 'Input')]")).sendKeys(Keys.ENTER); 

,但它不工作

帮助,如何选择从这个输入变量硒webdriver?

回答

0

试试这个变种(使用CSS选择器):

webDriver.findElement(By.cssSelector("input.rf-sel-inp")).sendKeys("Поливалент"); 

或使用JScript的另一种方式:

String cssSelector = .... //css selector of the element u need to select 
JavascriptExecutor js = (JavascriptExecutor) driver; 
     StringBuilder stringBuilder = new StringBuilder(); 
     stringBuilder.append("var x = $(\'"+cssSelector+"\');"); 
     stringBuilder.append("x.click();"); 
     js.executeScript(stringBuilder.toString()); 

希望这对你的作品

+0

不幸的是,没有工作:( – user1646556

+0

好吧。你怎么使用DOM来查找需要的元素? 尝试下一件事情。安装firepath(插件在Firefox Firebug的),然后输入有 input.rf-SEL-INP 它对于知道您是否将合适的定位器传递给驱动程序至关重要 在DOM中指出元素(输入字段)吗? –

+0

正如我所了解的,您需要在输入字段中输入一些东西,对吧? 必须工作: String properCssSelector =。 ... //正确的css选择器 webDriver.findElement(By.cssSelector(properCssSelector))clear(); webDriver.findElement(By.cssSelector(properCssSelector))。sendKeys(“blablabla”); –

0

尝试这个 -

driver.findElement(By.xpath("//input[@value='Начнитеввод']")).sendKeys("Поливалент"); 

让我知道如果它不工作!