如何从类型输入类下的表中的列表中选择一个值

时间:2018-01-05 19:36:47

标签: java selenium selenium-webdriver

  <ul class="rcbList" style="list-style:none;margin:0;padding:0;zoom:1;"><li class="rcbItem  rcbTemplate">
  <table style="width: 415px">
  <tbody><tr>
  <td style="width: 175px;"> </td>
  <td style="width: 125px;"></td>
  </tr>
  </tbody></table>
  </li><li class="rcbItem  rcbTemplate">
  <table style="width: 415px">
  <tbody><tr>
  <td style="width: 175px;">Production Strategy</td>
  <td style="width: 125px;">48</td>
  </tr>
  </tbody></table>

我在下面尝试过:

    WebElement menu = driver.findElement(By.xpath("//*[@id='ctl00_MainContent_RadComboBoxStrategyList_Input']"));
    actions.moveToElement(menu);
    actions.click(menu);
    actions.sendKeys(Keys.DOWN);
    actions.doubleClick();

并且

driver.findElement(By.xpath("//*[@id='ctl00_MainContent_RadComboBoxStrategyList_DropDown']/div[2]/ul/li[2]/table/tbody/tr/td[1]")).click();

3 个答案:

答案 0 :(得分:1)

要从Production Strategy列表中选择Dropdown,您可以使用以下代码行:

WebElement element = driver.findElement(By.xpath("//ul[@class='rcbList']/li[@class='rcbItem  rcbTemplate']//td[contains(.,'Production Strategy')]"));
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", element);
new WebDriverWait(driver, 10).until(ExpectedConditions. elementToBeClickable(By.xpath("//ul[@class='rcbList']/li[@class='rcbItem  rcbTemplate']//td[contains(.,'Production Strategy')]"))).click();

答案 1 :(得分:0)

首先单击下拉列表,然后单击文本值:

// click dropdown   
driver.findElement(By.id("ctl00_MainContent_RadComboBoxStrategyList_DropDown")).click(); 

// wait and click by text
WebDriverWait wait = new WebDriverWait(driver, 10); 
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Production Strategy)));
element.click();

答案 2 :(得分:0)

1)确认是否需要点击某个元素,然后显示选项,如果是,首先点击该元素,我不确定您发布的以下代码可以存档,如果没有得到正确的元素点击。

driver.findElement(By.id("ctl00_MainContent_RadComboBoxStrategyList_DropDown")).click();

2)选择该选项,如果选项需要在显示前加载超过10秒,请在选择前添加等待。

driver.findElement(By.xpath("//li[contains(.,'Production Strategy')]")).click();