[Selenium]点击下拉框之后,从下拉列表选择元素进行点击很容易失败

点击下拉框之后,下拉列表会显示出来,但是有时候下拉列表会很快就消失掉,导致后面选择元素的时候会失败。

像这种情况,需要将鼠标移动到下拉列表上,使下拉列表维持显示,然后才选择元素进行点击。

将鼠标移动到下拉列表上,有时候只要提供整个下拉列表的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;
	}
原文地址:https://www.cnblogs.com/MasterMonkInTemple/p/4555106.html