我应该在量角器中使用什么定位器?

时间:2015-08-21 21:31:09

标签: css angularjs selenium xpath protractor

test screenshot

我正在测试一些角度页面,如截图中所示。我尽力找到合适的定位器从下拉列表中选择一个值但失败了。在Java Selenium中,它曾经被xpath用作driver.findElement(By.xpath("//li[@role='option']//contains(text(),'"+valToBeSelected+"')].click()。我应该在量角器中使用什么?

这是元素源的截图,我试图复制源代码,但它似乎非常大。对不起,我必须拍三张截图,请使用绿色推荐行作为分隔符。

enter image description here 继续 enter image description here 继续 enter image description here

然后是<div role="options" ...>China</div><div role="options" ...>Chad</div>等列表,

2 个答案:

答案 0 :(得分:1)

点击a元素打开选择框:

element(by.xpath("//a[span = 'Please select your country of residence']")).click();

然后,按文字找到所需的下拉元素:

element(by.xpath("//li[@role='option' and .//div[. = 'Algeria']]")).click();

这里肯定有其他选项/定位器,但检查和依赖元素文本至少会有可读性奖励。

答案 1 :(得分:0)

将鼠标移到这些HTML元素上,直到找到蓝色的下拉列表,并使用该蓝色区域抓取选择器。

从我所看到的,它看起来像是“ui-select-choices-group&#39; maaaay就是其中之一。

所以你要使用CSS速记选择器:

var dropdown = $('.ui-select-choices-group');

然后访问in中的值:

dropdown.$('[value="Algeria"].click();
// Or
$('.ui-select-choices-group').$('[value="Algeria"]').click()

看看是否有效。这个选择器可能是正确的,但是如果没有打开HTML和浏览器,并且将鼠标悬停在代码页中的html元素上以查看突出显示的内容,就很难告诉我。