首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Selenium从菜单中搜索

使用Selenium从菜单中搜索
EN

Stack Overflow用户
提问于 2013-12-12 17:40:06
回答 1查看 991关注 0票数 0

我是一个新蜜蜂,输入用户名/密码后,我可以选择一个‘测试’选项。第一个选项显示在屏幕上,旁边是下拉箭头。点击箭头或框。打开一个新框,其中包含要选择的选项(测试1(默认)、测试2、测试3和test4)。我需要根据变量中的参数集进行选择。我能够通过xpath设置选择确切的选项,但在使用变量进行选择方面没有成功。

下拉菜单是自定义框-当鼠标悬停时,突出显示所选内容。

提前感谢

下面是代码.

代码语言:javascript
复制
<div id="loginForm:selectProject_panel" class="ui-selectonemenu-panel ui-widget-content ui-corner-all ui-helper-hidden ui-shadow" style="width: 208px; display: none; top: 58px; left: 617.5px;">
<div class="ui-selectonemenu-items-wrapper" style="height:auto">
<ul class="ui-selectonemenu-items ui-selectonemenu-list ui-widget-content ui-widget ui-corner-all ui-helper-reset">
<li class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" data-label="Test 1 ">Test 1</li>
<li class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" data-label="Test 2 ">Test 2 </li>
<li class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all ui-state-highlight" data-label="Test 3">Test 3</li>
<li class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" data-label="Test 4">Test 4</li>
</ul>
</div>
</div>

WebDriver代码

代码语言:javascript
复制
WebElement username = driver.findElement(By.id("loginForm:userLoginId"));
username.sendKeys("username");  
WebElement endKeys("Password1!");

WebElement dropdown = driver.findElement(By.xpath(".//*@id='loginForm:selectProject_label']"));
    dropdown.click();
//  System.out.println();

    driver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);

    WebDriverWait waitForOptions = new WebDriverWait(driver,3);
    waitForOptions.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='loginForm:selectProject']/div[3]")));

    driver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);

    WebElement option = driver.findElement(By.xpath(".//*[@id='loginForm:selectProject_panel']/div/ul/li[3]"));
    option.click();

    System.out.println("Selecting Test 3");

    WebElement button = driver.findElement(By.id("loginForm:loginButton"));
    button.click();
    System.out.println(driver.getTitle());
EN

回答 1

Stack Overflow用户

发布于 2013-12-13 06:35:30

代码语言:javascript
复制
String optionToSelect = "Test2"

driver.findElement(By.xpath("//*[contains(@class,'ui-selectonemenu-items ui-selectonemenu') and text()='" + optionToSelect  + "') ]";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20550422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档