按值单击元素 - 量角器

Click element by Value - protractor

我正在点击模式 window,这非常简单。一般来说,唯一相关的部分是:

<div id="partSelection">
   <button value="0" name="partSelection">BLATNÍK P L</button>
   <button value="1" name="partSelection">BLATNÍK P P</button>

我需要单击其中一个按钮,我知道如何单击它: xpath:

element(by.xpath('//*[@id="partSelection"]/button[2]')).click();

也可以使用按钮文本:

element(by.buttonText("BLATNÍK P P")).click();

但我注意到每个按钮都有不同的值,我相信这是开发人员不会改变的。有没有办法根据值单击元素?

感谢您的指教。

如果您只想查找特定属性,则此示例应该有效。当我试图找出查找特定属性的最佳方法时,我通常会参考这个 css selectors

基本上,细分是找到您想要的标签,在我们的例子中我们想要 button,然后我们想要在该标签中找到属性。所以我们可以选择 valuename。两个按钮的名称相同,因此我们不想使用它。但是每个按钮的是不同的,所以在这种情况下使用会很好。

element(by.ccs('tag[attribute=""]');

标签=按钮

属性=值

element(by.css('button[value="0"]')).click(); // button with text BLATNÍK P L 
element(by.css('button[value="1"]')).click(); // button with text BLATNÍK P P

添加到现有答案。

您可以使用以下 CSS 选择器解决它:

element(by.css("#partSelection button[value=0]")).click();

或者,使用 by.xpath() 定位器:

element(by.xpath("//div[@id='partSelection']/button[@value='0']")).click();

请注意,如果您要经常使用 "by value" 技术,为了遵循 DRY 原则, 定义自定义 by.value() 定位器可能是个好主意:

  • How to globally add a custom locator to Protractor?