识别切换条元素文本并在量角器中单击它

Identifying a toggle bar element text and clicking it in protractor

本文关键字:量角器 单击 文本 元素 识别      更新时间:2023-09-26

我正试图测试点击文本,这是打开其部分的切换栏的一部分。

源代码是这样的:

<h3 class="hdg hdg--3 hdg--muted">
Projects
<span class="toggleBar__toggle--icon toggleBar__icon--isOpen" data-ng-  class="{'toggleBar__icon--isOpen' : isVisible}"></span>
</h3>

代码是用Javascript编写的,我用它来测试量角器:

element(by.cssContainingText('h3', 'Projects')).click();

运行测试时,我收到以下错误:

No element found using locator by.cssContainingText("h3", "Projects")

可能是什么问题?

恐怕这是需要XPath的情况之一:

element(by.xpath("//h3[.//text()[normalize-space(.) = 'Projects']]")).click();

或者,如果您需要单击内部的span元素:

element(by.xpath("//h3[.//text()[normalize-space(.) = 'Projects']]/span")).click();

当我在调试模式下执行时,这两个命令都能工作。但是,当我在正常情况下运行它时,我会收到一个错误,说某个点的元素不可点击。其他一些元素接受点击。。。。。。。

这意味着这是一个时间问题。添加等待:

var EC = protractor.ExpectedConditions;
var elm = element(by.xpath("//h3[.//text()[normalize-space(.) = 'Projects']]"));
browser.wait(EC.elementToBeClickable(elm), 5000);
elm.click();