gpt4 book ai didi

javascript - by.css() 找到元素,但如果附加任何内容,则使用定位器找不到元素会引发错误

转载 作者:行者123 更新时间:2023-11-27 22:41:29 24 4
gpt4 key购买 nike

我正在使用 Protractor 进行测试,并且尝试使用标题标签访问 HTML 上的元素。问题是,当我尝试使用标题标签附加到元素时(我需要进一步向下的元素来测试innerHTML),我收到“使用定位器找不到元素: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>

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

最佳答案

第一个代码块通过的原因是,在这种情况下,Protractor 实际上根本不会尝试定位元素。仅当您对元素执行操作或请求某个属性或属性时,您才会触发 Protractor 尝试定位该元素。

换句话说,问题出在定位元素的方式上。

您构建的定位器链看起来不可靠,您应该调试链的哪个部分导致错误。 Put a browser.pause() or browser.debugger()并在 shell 中尝试 CSS 选择器。

很难透露更多信息,因为我们无法重现您的问题。

关于javascript - by.css() 找到元素,但如果附加任何内容,则使用定位器找不到元素会引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38723847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com