【问题标题】:How to click to specific coordinate of a page如何点击页面的特定坐标
【发布时间】:2016-06-08 11:42:04
【问题描述】:

我需要使用 Selenium-webdriver 单击页面中的链接,但我无法使用 href 的值访问该元素,如下所示:

var link = WebDriver.FindElements(By.XPath("//a[@href='example.html']"));

因为页面中的元素在一个框架中并且在另一个页面的源中。所以我需要点击链接所在的特定坐标。如何使用 selenium webdriver 来实现。

【问题讨论】:

  • 我试过这样但没有成功:Actions clicker = new Actions(WebDriver); clicker.MoveToElement(WebElement, 200, 200);

标签: c# selenium selenium-webdriver


【解决方案1】:

听起来您需要做的是切换到不同的框架,然后在该框架中查找您想要的元素,而不是使用坐标。坐标的问题是,如果你在不同的机器上运行它,坐标可能会不同。

IWebElement frame = driver.FindElement(By.CssSelector("xxx"));
driver.SwitchTo().Frame(frame); 

然后像往常一样搜索您的元素。打完电话

driver.SwitchTo().DefaultContent();

你会回到原来的页面。

【讨论】:

    【解决方案2】:

    您可以通过 Actions 类做到这一点。

    Actions builder = new Actions(driver);       
    builder.MoveByOffset(x, y).Click().Perform();
    

    或者通过JavascriptExecutor,只需将移动到链接所需的JS代码传递给它并单击它。

    【讨论】:

    • 是否有任何工具或方法来处理 x 和 y 值(协调网页的任何点)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 2016-07-29
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    相关资源
    最近更新 更多