我使用最新的IE和Chrome驅動程序(使用Java 1.8)運行Selenium 3 - 這兩種瀏覽器都適用於我的所有測試。我已經安裝Phantomjs,因爲我們希望這可以在構建服務器上運行。Phantomjs瀏覽器(Selenium)無法在下拉框中選擇一個項目
,因爲它由三個部分組成的dropdownbox是棘手的,請參閱代碼:
//POM
@FindBy(how = How.ID,using = "s2id_leads_lead_provider_source_channel")
private WebElement dropdownboxLeadProvider;
@FindBy(how = How.XPATH,using = "//div[@id='select2-drop']//input[contains(@id,'s2id_autogen')]")
private WebElement search_InAnyDropdownbox;
@FindBy(how = How.CLASS_NAME,using = "select2-result-label")
private List<WebElement> allOptions_InAnyDropdownbox;
// Code that I use to select item in dropdownbox
utilityWebElementExtras.selectItemInDropdownBox(dropdownboxLeadProvider, search_InAnyDropdownbox, allOptions_InAnyDropdownbox,"Broker");
// this is the method in the class that I use
public static void selectItemInDropdownBox(WebElement dropdownbox,WebElement inputSearch,List<WebElement> allOptionsList,String selectedItem){
browser.ExplicitWait(dropdownbox);
dropdownbox.click();
browser.ExplicitWait(inputSearch);
inputSearch.sendKeys(selectedItem);
browser.ExplicitWaitList(allOptionsList);
int counter = 0;
for (WebElement i: allOptionsList) {
System.out.println("test3");
if (i.getText().trim().equals(selectedItem)) {
allOptionsList.get(counter).click();
break;
}
counter++;
}
}
出於某種原因,當我運行此,幻影驅動程序無法皮卡dropdownbox,以及它看起來像它看到它但它不能做任何事情,例如,如果我做.click或.Sendkeys(keys.Enter)或.SendKeys(「test」),它什麼都不做。如果它失敗了,當它嘗試用於輸入搜索時,它將無法看到它,因爲在HTML中它被禁用/隱藏,只有在您單擊下拉框時纔會在HTML中啓用/取消隱藏。什麼嘗試的任何想法將appraciated?最後一件事情看起來像是它拿起屏幕Web元素的其餘部分,例如我可以使用文本框和單選按鈕。