2017-02-14 62 views
1
  1. 無法爲「文本」內部「下拉列表中選擇」
  2. 點擊當outputing的信息來安慰它列出了所有的冠軍(先生,太太上.. )
  3. 我只是無法點擊.Mr文本,有什麼想法? (我不想使用發送鍵)無法點擊「文本」內部「下拉列表中選擇」

    public void selectOptionFromDropdownMenu(WebElement dropdown, String textToSearchFor) { 
    List<WebElement> options = dropdown.findElements(By.tagName("option")); 
    dropdown.click(); 
    System.out.println(options.size()); 
    
    for (int i = 0; i < options.size(); i++) { 
        System.out.println("DEVIL!!!" + options.get(i).getText()); 
    
        if(options.get(i).getText() == "Mr.") { 
         options.get(i).click(); 
        } 
    } 
    

    }

enter image description here

<select id="titlefield" class="form-control ng-pristine ng-untouched ng-invalid ng-invalid-required" name="Salutation" ng-model="PersonalDetails.Salutation" ng-options="salut.id as salut.id for salut in Salutations" ng-required="FlowData.IsGuest" required="required"> 
<option class="ng-binding" value="">Please select</option> 
<option value="0" label="Mr.">Mr.</option> 
<option value="1" label="Miss">Miss</option> 
<option value="2" label="Mrs.">Mrs.</option> 
<option value="3" label="Ms.">Ms.</option> 
<option value="4" label="Dr.">Dr.</option> 
</select> 
+0

你爲什麼不使用爲'新的選擇(driver.findElement(By.id( 「titlefield」)))。selectByVisibleText( 「先生」。)'? –

回答

1
public void selectOptionFromDropdownMenu(WebElement dropdown, String textToSearchFor) { 
List<WebElement> options = dropdown.findElements(By.tagName("option")); 
Select selectDropdown = new Select(dropdown); 
//dropdown.click(); 
System.out.println(options.size()); 

for (int i = 0; i < options.size(); i++) { 
    System.out.println("DEVIL!!!" + options.get(i).getText()); 

    if(options.get(i).getText().equals(textToSearchFor)) { 
    selectDropdown.selectByVisibleText(textToSearchFor); 
     //options.get(i).click(); 
    } 
} 
+0

非常感謝您的幫助 – Gbru

1

您可以選擇用戶在這裏類。

Select oSelect = new Select(driver.findElement(By.id("<use the id>"))); 
List<WebElement> elem = oSelect.getOptions(); 
int iSize = elem.size(); 
for(int i=0; i <iSize;i++) 
    { 
     String sValue = oSelect.getOptions().get(i).getText(); 
     oSelect.getOptions().get(i).click(); 
     System.out.println(sValue); 
       if(sValue.equals("Miss")) 
     { 
      System.out.println("Position of the value is" +i); 
      oSelect.selectByIndex(i); 


      break; 
     } 
    } 
+0

感謝您的幫助 – Gbru

0
element=//select[contains(@id,"titlefield")]/option[contains(@value,"0") and @label="Mr."] 


public void javascriptclick(String element) 
    { 
     WebElement webElement=driver.findElement(By.xpath(element)); 
     JavascriptExecutor js = (JavascriptExecutor) driver; 

     js.executeScript("arguments[0].click();",webElement); 
     System.out.println("javascriptclick"+" "+ element); 

    }