使用xavascript的xpath查找元素

时间:2015-09-01 12:55:18

标签: javascript c# selenium xpath appium

我正在使用以下内容在iOS平台上开展移动自动化:

Selenium WebDriver:2.47

Appium dot net driver: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();

我可以切换到网页浏览但无法点击此特定元素。 在第二种方法中,我可以看到我可以获取元素,但调用click()方法不是单击元素。

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

更新

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

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

1 个答案:

答案 0 :(得分:0)

以下示例演示了使用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