点击下拉框之后,下拉列表会显示出来,但是有时候下拉列表会很快就消失掉,导致后面选择元素的时候会失败。
像这种情况,需要将鼠标移动到下拉列表上,使下拉列表维持显示,然后才选择元素进行点击。
将鼠标移动到下拉列表上,有时候只要提供整个下拉列表的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; }