提问人:Anne Bailly 提问时间:8/7/2022 更新时间:8/7/2022 访问量:52
将两个 xpath 合并为一个 xpath
Combining two xpaths into one xpath
问:
是否可以将这两个 Xpath 合并为一个 xpath 查询?
signatureAgreementThumbnailForInProgressApplication = By.XPath("//div[text()='Upload Signature Agreement']/parent::div/parent::div/descendant::div[contains(@style,'background-image: url')]");
signatureAgreementThumbnailForSubmittedApplication = By.XPath("//div[text()='Signature Agreement']/parent::div/descendant::div[contains(@style,'background-image: url')]");
我的自动化测试(项目是 VS/C#/Selenium)需要验证在线应用程序的两种状态的文档缩略图是否存在(但不是内容或其他任何内容):正在进行和已提交。我觉得两个具有不同 xpath 的独立方法是多余的,因为我正在做同样的简单验证。
在浏览了建议使用和/或评估多个属性的 SO 帖子后,我创建了下面的查询,它几乎完美地适用于正在进行的和已提交的缩略图。小问题是,对于 Submitted,在 DOM 中,xpath 命中了两个缩略图元素,一个是我希望它命中的,另一个是另一个。我的测试仍然通过,因为它正在验证缩略图的存在,但我希望对其进行调整,以便它找到特定的缩略图。
signatureAgreementThumbnail = By.XPath("//div[text()='Upload Signature Agreement' or text()='Signature Agreement']/parent::div/parent::div/descendant::div[contains(@style,'background-image: url')]");
我还尝试了以下查询,这些查询根本不起作用:
//div[text()='Upload Signature Agreement' or text()='Signature Agreement'][/parent::div/parent::div/descendant::div or /parent::div/descendant::div][contains(@style,'background-image: url')]
//div[text()='Upload Signature Agreement' or text()='Signature Agreement'][/parent::div/parent::div/descendant::div or /parent::div/descendant::div and contains(@style,'background-image: url')]
我无法提供我正在自动化的站点的 URL,因为它是一个私人站点。
答: 暂无答案
评论