我正在使用旧门户网站,我必须使用IE
。有些东西是找不到的,因为它是<td>
菜单的一部分,我试图通过XPath
找到它,但没有帮助。
我发现表单是由JavaScript
函数呈现的。我想点击它们只是为了执行它,但是如何使用selenium WebDriver
找到页面元素?
例如:如果我有这段代码
<div class="logout-link ng-scope"
ng-click="login("github")"
ng-show="!me" ng-controller="MenuCtrl">login</div>
如何使用Selenium WebDriver执行ng-click部分?
答案 0 :(得分:0)
答案 1 :(得分:0)
单击您创建的Web元素将执行关联的功能。通过CSS选择器查看ng-click:
IWebElement elem = driver.FindElement(By.CssSelector("div[ng-click=login("github")]"));
elem.click();
您还可以构建一个动作来移动到元素,然后单击它:
IWebElement elem = driver.FindElement(By.CssSelector("div[ng-click=login("github")]"));
Actions action = new Actions(driver);
action.MoveToElement(elem).Click().Build().Perform();
答案 2 :(得分:0)
为什么要执行Javascript
来查找元素???尝试使用WebDriverWait
等待元素可见并可点击,如下所示: -
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
var Login = wait.Until(ExpectedConditions.ElementToBeClickable(By.Xpath("//div[text() = 'login']")));
Login.Click();
注意: - 确保在尝试此元素不在任何frame
希望它有帮助.....:)