动态搜索无法通过selenium webdriver显示结果?

动态搜索无法通过selenium webdriver显示结果?,selenium,selenium-webdriver,Selenium,Selenium Webdriver,应用程序组动态搜索框& 在键入“孟买”搜索结果下拉显示时,如下所示, 但是通过硒作为 driver.findElement(By.id("searchstr2")).sendKeys("Mumbai"); 或 搜索结果不显示为, 文本框html为 <input id="searchstr2" class="search ui-autocomplete-input" type="text" placeholder="Search for Building, Location or Dev

应用程序组动态搜索框& 在键入“孟买”搜索结果下拉显示时,如下所示, 但是通过硒作为

driver.findElement(By.id("searchstr2")).sendKeys("Mumbai");

搜索结果不显示为,

文本框html为

<input id="searchstr2" class="search ui-autocomplete-input" type="text" placeholder="Search for Building, Location or Developer" autocomplete="off" name="searchstr2" size="35" style="background-image: none;"

自动完成字段的问题是,通常会有一个Javascript事件等待文本出现在字段中,以显示可用的建议(可能是从服务器获取建议而执行的Ajax)
SendKeys
不会触发该事件,因此您可以在输入文本后尝试单击该字段。 基本上:

WebElement suggestion = driver.findElement(By.id("searchstr2"));
suggestion.sendKeys("Mumbai");
suggestion.click();
我没有对此进行测试,因此您可以尝试在
sendKeys()之前使用
click()
方法

如果这不能解决您的问题,您可以尝试使用Javascript触发onChange事件:

WebElement suggestion = driver.findElement(By.id("searchstr2"));
suggestion.click();
suggestion.sendKeys("Mumbai");
((JavascriptExecutor) driver).executeScript("$(arguments[0]).change(); return true;", suggestion);

自动完成字段的问题在于,通常会有一个Javascript事件等待文本出现在字段中,以显示可用的建议(可能是Ajax,它被执行以从服务器获取建议)
SendKeys
不会触发该事件,因此您可以在输入文本后尝试单击该字段。 基本上:

WebElement suggestion = driver.findElement(By.id("searchstr2"));
suggestion.sendKeys("Mumbai");
suggestion.click();
我没有对此进行测试,因此您可以尝试在
sendKeys()之前使用
click()
方法

如果这不能解决您的问题,您可以尝试使用Javascript触发onChange事件:

WebElement suggestion = driver.findElement(By.id("searchstr2"));
suggestion.click();
suggestion.sendKeys("Mumbai");
((JavascriptExecutor) driver).executeScript("$(arguments[0]).change(); return true;", suggestion);

java脚本需要一些时间来加载列表,所以我在send name和arrow down key事件之间添加了计时器,将为我工作代码快照

WebElement ar=driver.findElement(By.id("searchstr2"));
ar.sendKeys("Mumbai");
Thread.sleep(2000);
ar.sendKeys(Keys.ARROW_DOWN);

java脚本需要一些时间来加载列表,所以我在send name和arrow down key事件之间添加了计时器,将为我工作代码快照

WebElement ar=driver.findElement(By.id("searchstr2"));
ar.sendKeys("Mumbai");
Thread.sleep(2000);
ar.sendKeys(Keys.ARROW_DOWN);

你们能分享你们的网站URL吗?实际上,这个功能在应用程序的后端,所以它需要登录的凭证。我可以分享相同的html快照吗?实际上,如果不看直播场景,很难说问题出在哪里…请尝试一下:
WebElement el=driver.findelelement(By.id(“searchstr2”);el.click();sendKeys(“孟买”)。让我知道..谢谢亲爱的,但不工作。你能分享你的网站URL吗?实际上,这个功能在应用程序的后端,所以它需要登录凭据。我可以分享相同的html快照吗?实际上,如果不看直播场景,很难说问题出在哪里…请尝试一下:
WebElement el=driver.findelelement(By.id(“searchstr2”);el.click();sendKeys(“孟买”)。并让我知道..谢谢亲爱的,但不起作用。谢谢您的帮助,但根据我的观察,上述解决方案不起作用(即列表不显示)。按向下键而不是单击时,将显示列表,但“键。向下箭头”也不起作用。根据我的观察,感谢您的帮助,但上述解决方案不起作用(即列表不显示)。按向下键而不是单击时,列表将显示,但“键。向下箭头”也不起作用。你能根据这个建议吗?为我工作:)谢谢为我工作:)谢谢