我需要使用Selenium-webdriver单击页面中的链接,但我无法使用href
的值访问该元素,如下所示:
var link = WebDriver.FindElements(By.XPath("//a[@href='example.html']"));
因为页面中的元素位于框架中并且位于另一页面的源中。所以我需要点击链接所在的特定坐标。如何使用selenium webdriver来制作它。
答案 0 :(得分:4)
听起来你需要做的就是切换到另一个框架然后在那个框架中查找你想要的元素,而不是使用坐标。坐标的问题在于,如果在不同的机器上运行,坐标可能会有所不同。
IWebElement frame = driver.FindElement(By.CssSelector("xxx"));
driver.SwitchTo().Frame(frame);
然后正常搜索您的元素。一旦你完成了呼叫
driver.SwitchTo().DefaultContent();
您将返回原始页面。
答案 1 :(得分:1)
您可以通过Actions类完成此操作。
Actions builder = new Actions(driver);
builder.MoveByOffset(x, y).Click().Perform();
或者通过JavascriptExecutor
,只需传递给它所需的JS代码移动到链接并单击它。