Selenium Xpath for Salesforce 页面复选框 - “选中”属性不存在

Posted

技术标签:

【中文标题】Selenium Xpath for Salesforce 页面复选框 - “选中”属性不存在【英文标题】:Selenium Xpath for Salesforce Page checkbox - “checked” attribute is not present 【发布时间】:2020-07-15 01:40:50 【问题描述】:

问题:我发现难以处理 Salesforce 页面的复选框。我没有看到任何区别 在复选框的两种状态之间。状态检查和未检查都显示相同的类、属性和文本。我不确定如何处理 Salesforce 上的复选框。 请看下面的截图。我们确实有 ID,但它们是动态的,所以我不能在我的测试用例中使用 ID。

平台:JAVA、TestNG、Eclipse、Selenium

Only difference I see is when checkbox is selected then I can see below:
<span lightning-input_input="" class="slds-checkbox_faux" xpath="1">
: : after ==$0
</span>

when it's not checked the I can see below:

<span lightning-input_input="" class="slds-checkbox_faux" xpath="1">
</span>

到目前为止,我在 Salesforce 页面上所做的尝试对我没有帮助:

    String rr = driver.findElement(xpath).getAttribute("checked"); // not working

    isSelected(); // Not Working 

    document.getElementById('myInput').checked // Can not use this becasue of Dynamic ID 

我在 Salesforce 页面上浏览并在本地尝试过的以下链接:

Selenium checkbox attribute "checked"

Xpath to determine checkbox "checked" attribute in Selenium IDE

Checkbox without checked attribute

【问题讨论】:

谢谢@E.Wiest,你的意思是“//span[@class='slds-checkbox_faux'][contains(.,'after')]”?刚刚检查了这个 xpath 不工作。 我的意思是contains(//span[@class="slds-checkbox_faux"],"after")(前一个是错误的)? XPath expession 将返回一个布尔值。返回 true = 选中,返回 false = 未选中。 选择后检查带有span.slds-checkbox_faux::after css的元素。如果元素计数返回0,则未选中复选框。告诉我进展如何。 @supputuri 感谢您的回复。没有没有帮助我。我认为剩下的唯一解决方案是触发 SOQL 查询以查看值 ID 是否可用。 【参考方案1】:

@Mike ASP 我在 Salesforce 平台上遇到过类似的情况。尝试将 xpath 用作//*[@name='Existing_Tenant__c'] 它对我有用。如果您看到多个元素,请使用索引来获取您要检查的元素。对于前 (//*[@name='Existing_Tenant__c'])[1]。只需确保 xpath 突出显示 DOM 中的 type='checkbox' 标记即可。

下图是我的场景

【讨论】:

我的问题不仅仅是在 Salesforce 上定位元素。而是区分已检查或未检查的元素并为它们创建唯一的 Xpath。对于我在问题中突出显示的元素,DOM 没有显示这两种状态之间的差异。 不知道为什么你想要一个独特的 xpath。在我的情况下,我使用了 driver.findElement(By.xpath("(//*[@name='Private__c'])[1])").isSelected() 来返回 true(如果选择)或假(如果未选择)

以上是关于Selenium Xpath for Salesforce 页面复选框 - “选中”属性不存在的主要内容,如果未能解决你的问题,请参考以下文章

如何使用selenium和python创建具有相同xpath的元素列表?

selenium + Python -- xpath定位

selenium +xpath

Selenium-xpath详解

Selenium-xpath详解

python+selenium元素定位之XPath学习01