c#Selenium Chrome - 点击包含类和子类的按钮

时间:2017-10-05 10:00:59

标签: c# html selenium selenium-chromedriver

第一个问题: 我已经通过xpath教程并检查了许多其他帖子和论坛。我不确定我错过了什么。我只是试图通过xpath找到以下元素:

<button ng-show="vm.enableSkip(row)" ng-click="vm.skipTask(row.workItemId)" title="Skip" class="btn btn-xs"><span class="fa fa-angle-double-right text-success"></span></button>

我尝试过如下:

Element_on_site = findElement(By.xpath("//*[@title='Skip']"));

但这不起作用。

我之前应该只添加元素名称吗?像这样? :

Element_on_site = findElement(By.xpath("//button[@title='Skip']"));

我现在无法对其进行测试,因为我无法访问此网站 工作。 有人可以帮助我点击没有错误吗?

第二个问题:  像这样的HTML代码页: enter image description here 如果这是问题,我可以在代码中重写它。告诉我,我删除图片并制作此代码。 问题是:如何点击跳过元素其中:

class = "ng-scope"和子类(ng-scope)是class = "ng-binding"ng-binding = "outgoingEventExecutor"内的元素

我真的在谈论:

<a href="" ng-click="vm.showProcessDiagram(row.executor)" class="ng-binding">outgoingEventExecutor</a>

如果我哪里可用,我该怎么办呢?只需点击 第一个问题?

关于评论的编辑1 我只想要这样的事情:

//tr[@class='ng-scope']/td[@class='ng-binding']/ == **outgoingEventExecutor**

但不知道怎么写来检查这条路径&gt;然后如果有这个执行者那么只需/按钮[@title =&#39; Skip&#39;]

编辑2 好吧,我会直截了当地解释我想要做的事情,并且我想要做到。 在网站上,我有几个html文本块,看起来相同(看起来是屏幕),只有一个区别。不同的是这段HTML代码:

<a href="" ng-click="vm.showProcessDiagram(row.executor)" class="ng-binding">outgoingEventExecutor</a>

只是名字&#34; outgoingEventExecutor&#34;每个代码块都不同。 我想要做的就是点击类中的Skip按钮(tr class =&#34; ng-scope&#34;)并包含链接的文本 - 如你所说:exacly:&#34; outgoingEventExecutor& #34 ;.我想现在你了解我在做什么。谢谢!

1 个答案:

答案 0 :(得分:1)

我想知道你dom中的某个地方是否有另一个带有@ title ='Skip'的按钮。尝试使用XPath更明确一些。给这个家伙一个机会:

//tr[@class='ng-scope']/td[@class='text-center']/button[@title='Skip']

如果恰好在页面上有多个元素,这将为特定按钮提供更多方向,通常在表格中