我在一些自动化测试中使用Selenium。在某个页面上,我需要单击一个按钮。这个页面被多次使用,当我最初尝试使用完整的xpath时,它可以在其中一个页面上工作,但不能在另一个页面上工作。每个页面的完整xpath略有不同,所以我不想使用它。
按钮的xpath如下所示
.//*[@id='approve-gen8149262f2cdc49958632185c33b8e82f']
在两个页面上,id始终以approve开头,然后获取一些生成的数字。
我想知道是否有办法只搜索id的一部分,所以我可以寻找“批准”以找到我需要点击的按钮。
到目前为止,我已经尝试了许多没有运气的事情。
答案 0 :(得分:3)
您还可以使用CSS选择器:
[id^="approve"]
答案 1 :(得分:1)
使用XPath,您可以选择其中一个属性以给定字符串开头的元素。例如:
//*[starts-with(@id, "approve-gen")]
另见:
答案 2 :(得分:0)
您也可以将xpath与contains一起使用。例如。
//*[contains(@id, 'approve-gen')]
确保没有其他ID以“approve-gen”开头的定位器。
答案 3 :(得分:0)
使用 步骤1: 从Given Info我已经把CSS Selector假设为
CSS =按钮[ID * ='批准根']
同时查找将带来唯一性的其他属性按钮。
第2步:
执行单击按钮
driver.findElement(By.cssSelector("按钮[ID * ='批准根']&#34))。单击();