點擊下拉框之后,下拉列表會顯示出來,但是有時候下拉列表會很快就消失掉,導致后面選擇元素的時候會失敗。
像這種情況,需要將鼠標移動到下拉列表上,使下拉列表維持顯示,然后才選擇元素進行點擊。
將鼠標移動到下拉列表上,有時候只要提供整個下拉列表的Dom結構就可以,有時候下拉列表很長,這種方式也會失敗。
后來采用計算下拉列表的大小,給一點偏移量來進行移動,比較好使。
/**
* Click drop down control of Asset Class Set in Asset Class Selection Dialog
* @author jzhang6
*/
public List<WebElement> clickDropDownControlOfACSetInACSelectionDialog() {
Actions action = new Actions(driver);
WebElement dropDownControl=page.getDropDownControlOfACSetInACSelectionDialog();
action.click(dropDownControl);
WebElement dropDownMenu=page.getDropDownMenuOfACSetInACSelectionDialog();
Dimension menuSize=dropDownMenu.getSize();
int locx=(menuSize.width)/10;
int locy=(menuSize.height)/10;
action.moveToElement(dropDownMenu,locx,locy).perform();
List<WebElement> li=page.getListOfACSetInACSelectionDialog();
Assert.assertTrue(li.size()>0, "Drop down list of Assert Class Set should be expanded");
return li;
}
