簡體   English   中英

無法選擇硒中的下拉值

[英]Not able to select drop-down values in selenium

無法選擇硒中的下拉值。

HTML代碼是:

此代碼用於選擇-選擇客戶-

<div id="createTasksPopup_customerSelector" class="customerOrProjectSelector selectorWithPlaceholderContainer at-dropdown-list-btn-ct notSelected">
    <table id="ext-comp-1057" class="x-btn-wrap x-btn at-dropdown-list-btn x-btn-over x-btn-focus" cellspacing="0" cellpadding="0" border="0" style="width: auto;">
       <tbody>
             <tr id="ext-gen397" class=" x-btn-with-menu">
                  <td class="x-btn-left">
                      <td class="x-btn-center">
                          <em unselectable="on">
                              <button id="ext-gen391" class="x-btn-text" type="button">- Select Customer -</button>
                          </em>
                      </td>
                 <td class="x-btn-right">
            </tr>
        </tbody>
    </table>
</div>

現在,我需要選擇-所有活動的客戶-

<div id="ext-gen613" class="x-layer x-menu at-dropdown-list-btn-menu customerProjectListSelector customerListSelector createTasksCustomerProjectSelector" style="position: absolute; z-index: 15000; visibility: visible; left: 360px; top: 163px;">
    <a id="ext-gen616" class="x-menu-focus" tabindex="-1" onclick="return false;" href="#"/>
        <ul id="ext-gen617" class="x-menu-list">
            <li id="ext-gen621" class="x-menu-list-item ">
            <li id="ext-gen623" class="x-menu-list-item ">
            <li id="ext-gen625" class="x-menu-list-item x-menu-item-active">
                <a id="ext-gen626" class="x-menu-item" href="#">
                    <img class="x-menu-item-icon " src="/img/default/extjs/s.gif?hash=970179041"/>
                        - ALL ACTIVE CUSTOMERS -
                </a>
            </li>
        <li id="ext-gen627" class="x-menu-list-item ">
</ul>

在此處輸入圖片說明

driver.findElement(By.xpath(ObjRepoProp.getProperty("selectCustomer_XPATH")))‌​.click();
Actions act = new Actions(driver);
act.sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOW‌​N).sendKeys(Keys.ENTER).perform();
Thread.sleep(5000);

提前致謝

假下拉列表中的所有選擇都是A標簽。 您應該能夠單擊以打開下拉列表,然后單擊包含所需文本的A 試試下面的代碼。

String searchText = "- ALL ACTIVE CUSTOMERS -";
driver.findElement(By.xpath(ObjRepoProp.getProperty("selectCustomer_XPATH"))).click();
List<WebElement> links = driver.findElements(By.cssSelector("#ext-gen617 a"));
for (WebElement link : links)
{
    // this may need to be .contains() instead of .equals()
    if (link.getText().trim().equals(searchText))
    {
        link.click();
        break;
    }
}

注意:如果id是動態的,則在看不到頁面並且無法刷新幾次並查看更改和不更改的情況下,我無法告訴您將其更改為什么。 我將從編輯CSS選擇器開始。 也許嘗試下面的一些,看看是否有任何工作。

driver.findElements(By.cssSelector("div.customerProjectListSelector a"));
driver.findElements(By.cssSelector("div.customerListSelector a"));
driver.findElements(By.cssSelector("div.createTasksCustomerProjectSelector a"));

嘗試以下方法:

Select dropdown = new Select(driver.findElement(By.id("createTasksPopup_customerSelector"))); 
dropdown.selectByVisibleText("- ALL ACTIVE CUSTOMERS -");

注意:-您也可以使用xpath代替Id

讓我知道您是否遇到任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM