问题描述
我正在尝试使用 selenium 进行 UI 自动化。我必须做的一项简单任务是将鼠标悬停在下拉元素上。我曾尝试使用 MovetoElement 命令,它成功运行且没有错误,但在我的自动化运行过程中从未打开下拉列表。例如,我试图在梅西的网站上运行它。我已经尝试过以下这些陈述中的任何一个,但都没有运气。
Either this statement
action.MovetoElement(driver.FindElement(By.XPath("//*[@id='showByDepartmentCaret']"))).Build().Perform();
Or
action.MovetoElement(driver.FindElement(By.XPath("//*[@id='shopByDepartmentLabelText']"))).Build().Perform();
解决方法
试试这个方法。您需要先点击下拉菜单以打开菜单
虽然。所以我想知道你的问题是否真的是,我如何点击下拉链接?
public static void HoverByXpath(string value)
{
var element = _wait.Until(c => c.FindElement(By.XPath(value)));
Actions action = new Actions(driver);
action.MoveToElement(element).Perform();
}
如果我查看梅西百货的网站,我会做这样的事情。
Driver.FindElement(By.ID("showByDepartmentCaret")).Click();
Driver.FindElement(By.Xpath("//div[@id='mainNavigation']//a/span[text()='jewelry']")).Click();
这对我有用:
Driver.Goto("https://www.macys.com/");
Driver.FindElement(By.ID("shopByDepartmentLabelText")).Click();
Driver.FindElement(By.Xpath("//div[@id='mainNavigation']//a/span[text()='jewelry']")).Click();
,
解决了我的问题。我在笔记本电脑上的显示设置不是 100%。不过浏览器很好。