【发布时间】:2021-04-27 16:59:39
【问题描述】:
我们在 Sales Force 非 Lightning 上运行了 Selenium 测试。现在我正在转换为闪电。有一连串的菜单要经过。我已经成功导航到某个菜单,但现在我遇到了问题。这不是关于新元素名称的标准问题。这是问题。这是页面外观的一小部分(见下文)。
在 Chrome 中使用检查时,我可以找到元素。这就是它的样子(对应上面的一个小横截面)。 SPAN 标签有标签(“原始协议”),它下面的 DIV 将包含输入值的框。
<div class="slds-form-element__control" data-aura-rendered-by="228:1224;a">
<div data-aura-rendered-by="1108:0" class="uiInput forceSearchInputLookupDesktop uiInput--default" data-aura-class="uiInput forceSearchInputLookupDesktop uiInput--default">
<label class="label inputLabel uiLabel-left form-element__label uiLabel" for="157:1224;a" data-aura-rendered-by="1103:0" data-aura-class="uiLabel">
<span class="" data-aura-rendered-by="1104:0">Original Agreement</span>
<!--render facet: 1106:0--><!--render facet: 1107:0--></label>
<div data-aura-rendered-by="161:1224;a"><div class="contentWrapper slds-box--border" data-aura-rendered-by="162:1224;a">
但是,Selenium 找不到元素(尽管 inspect 可以)。当我执行“查看页面源而不是 检查,几乎整个事情都是这样在 JavaScript 中的:
function rewriteAndInjectCss(linkEl, source, varLookup) {
var css = rewriteCssVars(source, varLookup);
injectStyles(linkEl, css);
}
还有更多。几乎所有功能,可能只有几个元素。
过去,当我看到类似的东西时,通常会切换到 iframe 来获取元素。但是没有 iframe 可以切换。所以我被困住了如何得到这些。有人能解释一下吗?
【问题讨论】:
-
一旦专注于输入右击并选择“检查元素”。
-
这不会帮助 Selenium 找到元素。
-
它会为您提供您需要定位的输入标签...点击/关注 div (contentWrapper)
-
好的。找到了。我需要做一个 driver.switchTo().defaultContent()
标签: selenium salesforce-lightning