Javascript by.css()查找元素,但若追加了任何内容,则不会抛出使用定位器的错误

Javascript by.css()查找元素,但若追加了任何内容,则不会抛出使用定位器的错误,javascript,protractor,Javascript,Protractor,我正在使用量角器进行测试,并尝试使用title标记访问HTML中的元素。问题是,当我尝试用title标记附加到元素(我需要一个更向下的元素来测试innerHTML)时,我得到了“使用locator:By(css选择器)找不到元素”错误 此代码通过: browser.element.all(by.css('div[data-row="1"]')).get(0).element(by.css('div[class="widget-body"]')). element(by.css('section[

我正在使用量角器进行测试,并尝试使用title标记访问HTML中的元素。问题是,当我尝试用title标记附加到元素(我需要一个更向下的元素来测试innerHTML)时,我得到了“使用locator:By(css选择器)找不到元素”错误

此代码通过:

browser.element.all(by.css('div[data-row="1"]')).get(0).element(by.css('div[class="widget-body"]')).
element(by.css('section[class="scrollable"]')).element(by.css('div[title="myTitle: myTitle"]'));
但该代码不:

browser.element.all(by.css('div[data-row="1"]')).get(0).element(by.css('div[class="widget-body"]')).
element(by.css('section[class="scrollable"]')).element(by.css('div[title="myTitle: myTitle"]')).
element(by.css('span[class="text-I-Want ng-binding"]')).getInnerHtml();
Html元素:

<div title="myTitle: myTitle">
    <header><b class="ng-binding">myTitle</b></header>
        <section>
            <h3><span class="text-on-hand ng-binding">myTitle</span>
        </section>
</div>

我的头衔
我的头衔

数据行/小部件主体/可滚动元素是我需要访问的元素的父元素。我找不到任何在线资源告诉我发生这种情况的原因。有人能帮忙吗?

第一个代码块通过的原因是,在这种情况下,量角器根本不会尝试定位元素。只有在您执行acti在一个元素上,或者请求一个特定的属性-然后您将触发量角器来尝试定位该元素

换句话说,问题在于定位元素的方式

您构建的定位器链看起来不可靠,您应该调试链的哪个部分导致错误。然后在shell中尝试CSS选择器


由于我们无法重现您的问题,因此很难说得更多。

可以附加页面的屏幕截图吗?我将标记您的屏幕截图为正确。关于我如何解决问题,有太多的因素需要讨论,但基本上标题隐藏在一个下拉列表中,当单击“+”符号时,该下拉列表会打开。在另一个页面上,我dn不必在click()中编码为了使测试通过。在这一页上,我必须按下+使菜单下降,然后我才能够真正找到元素。长话短说,量角器测试不仅仅是一个复制和粘贴,如果一个东西在一页上工作,即使它们几乎相同。它很有可能无法在单独的页上工作。没有你的help,我不会通过量角器API来发现哪里出了问题。