【问题标题】:Finding an element using xpath of javascript使用 javascript 的 xpath 查找元素
【发布时间】:2015-11-26 17:27:22
【问题描述】:

我正在使用以下工具在 iOS 平台上进行移动自动化:

Selenium WebDriver:2.47

Appium 点网驱动:1.4.0.3

Appium:1.4.8

我想使用 xpath 找到一个元素并单击它。但我不想使用 Selenium webdriver 的本机方法。

我想使用 javascript 执行此操作。

我尝试了以下方法:

1

_driver.ExecuteScript("window.document.evaluate(\"//a[contains(text(),'Log In')]\", document.lastChild, null,XPathResult.ANY_TYPE, null).click()");

2

IList<IWebElement> buttons = _driver.FindElements(By.XPath("//a[contains(text(),'Log In')]"));
           _driver.ExecuteScript("arguments[0].click();", buttons[0]);

3

_driver.FindElement(By.XPath("//a[contains(text(),'Log In')]")).Click();

我可以切换到 webviews 但无法点击这个特定的元素。 在第二种方法中,我可以看到我可以获取元素,但调用 click() 方法并没有点击元素。

提前致谢。我被困在这里两天了。

更新:

这是我要点击的按钮的html:

<a class="btn btn-outline white slide-demo" data-slide-target=".slide-wrap">Log In</a>

【问题讨论】:

  • 您可能应该为您要查找的元素提供 HTML。
  • 为什么要求不使用原生 Selenium 方法?
  • 这不是我的要求。只是本机 selenium 方法在 iOS 设备中不起作用。我还用 HTML 更新了我的问题。请看一下。

标签: javascript c# selenium xpath appium


【解决方案1】:

以下示例演示了使用 XPath 查询查找所有包含“XPath”的 H3 的通用非 IE 语法:

var result = document.evaluate("//h3[contains(text(),'XPath')]",
document.documentElement, null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)

        for (var i=0; i<result.snapshotLength; i++) {
            alert(result.snapshotItem(i).innerHTML)
        }

This link might be useful 也可以查看This Tutorial

【讨论】:

  • 本教程有 5 种查询元素的方法,不包括 xpath。但是没有使用 xpath 查询元素的语法。一个简单的例子表示赞赏。谢谢
猜你喜欢
  • 1970-01-01
  • 2020-05-19
  • 2020-06-07
  • 1970-01-01
  • 1970-01-01
  • 2020-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多