我正在尝试处理一个自动暗示的多巴胺,在这里,我输入一个searchTerm结果将由术语来表示。我试图循环它,并检查实际文本是否等于预期的文本,以及是否单击它
这就是我要处理的那一页

单击“抛出”元素时,是否有其他方法可以处理自动提示下拉列表?
我使用for循环从列表中获取选项,并尝试与列表中的文本进行比较,并根据实际情况选择它
Homepage.java
//selecting region
public void selectRegion(String regionName) throws InterruptedException {
int regionCount = getOptions().size();
System.out.println("count of region" + regionCount);
for(int i=0;i<getOptions().size();i++) {
String region = getOptions().get(i).getText();
System.out.println(regionName);
if(regionName.equals(regionName)) {
try {
getOptions().get(i).click();
break;
}
catch (Exception e) {
System.out.println("exception >>" + e.toString()) ; }
}
}
}
@Test
public void homePage() throws InterruptedException {
HomePage homePage = PageFactory.initElements(driver, HomePage.class);
homePage.EnterSearch("lond");
Thread.sleep(1000);
homePage.selectRegion("London");
homePage.clickSearchBtn();所需的选项是选择,但在控制台中,它会抛出重复的元素,而不是可见的异常。
> exception >>org.openqa.selenium.ElementNotVisibleException: element not interactable (Session info: chrome=73.0.3683.86) (Driver info: chromedriver=73.0.3683.75,platform=Linux 4.15.0-47-generic x86\_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 0 milliseconds Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-118
发布于 2019-04-09 06:14:46
请参阅以下代码:
HomePage
初始化webelements:
@FindBy(css = "ul.ui-autocomplete>li>a")
List<WebElement> regions;方法选择区域:
public void selectRegion(String param) {
for (WebElement e : regions) {
if (e.getText().equals(param)) {
e.click();
break;
}
}
}这是你的召唤课
driver.get("https://www.zoopla.co.uk/");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
HomePage page = new HomePage(driver);
page.enterSearch("lond");
page.selectRegion("London");
page.clickSearchBtn();代码在我的chrome浏览器中运行良好,如果您有任何问题,请告诉我。
发布于 2019-04-09 04:40:00
public void searchUsingAutoComplete(String element,String reuiredTextToClick) {
WebDriverWait wait = new WebDriverWait(d,30);
wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath(element)));
List<WebElement> list=d.findElements(By.xpath(element));
log.info("Auto Suggest List ::" + list.size());
int i;
for( i = 0 ;i< list.size();i++)
{
log.info(list.get(i).getText());
if(reuiredTextToClick.equalsIgnoreCase(list.get(i).getText()))
{
list.get(i).click();
break;
}else {
log.info(list.get(i).getText()+" not equals "+reuiredTextToClick);
}
if(i==list.size()-1) {log.error(reuiredTextToClick+" not found");
throw new ElementNotVisibleException("Element not found with "+ reuiredTextToClick+" text");
}
}使用上面的代码您的元素将是:-//ul@id=‘ui-id-1’/li,我尝试使用这段代码,我可以选择所需的文本
https://stackoverflow.com/questions/55584275
复制相似问题