以下是按钮的HTML
:
<button type="button" class="button" onclick="shippingMethod.save()">
<span>
<span>Continue</span>
</span>
</button>
我想通过xpath表达式找到它。我已经尝试过了:
//button[contains(@class, 'button')][contains(@onclick, 'shippingMethod.save()')
和
By.xpath(".//[@id='shipping-method-buttons-container']/button")
但是都没有工作。
答案 0 :(得分:0)
尝试使用以下任一 xpaths :
1 - //button[@onclick='shippingMethod.save()']
这会找到onclick
属性为shippingMethod.save()
2 - //button[normalize-space(.)='Continue']
这将找到内部HTML /文本完全等于Continue
的按钮,并修剪空格(如果存在)。
2 - //button[@onclick='shippingMethod.save()' and normalize-space(.)='Continue']
这将找到onclick
属性为shippingMethod.save()
的按钮,并且内部HTML /文本完全等于Continue
,其中空格(如果存在)已修剪。
答案 1 :(得分:0)
你可以使用其中一个(最好是第二个,因为页面上可能有多个符合相同标准的按钮):
//span[.='Continue']/ancestor::button[1]
或者
//span[.='Continue']/ancestor::button[@onclick='shippingMethod.save()']
此外,您在此
中缺少标记名称或*By.xpath(".//[@id='shipping-method-buttons-container']/button")
将其更改为:
By.xpath("//*[@id='shipping-method-buttons-container']/button")
如果按钮是buttons-container元素的直接子元素,它应该工作。如果不是:
By.xpath("//*[@id='shipping-method-buttons-container']//button")
答案 2 :(得分:0)
他们是从谷歌浏览器获取xpath的步骤。
答案 3 :(得分:-1)
以下定位器之一可以提供帮助
//button[text()='Continue']
- 通过substring
//button[@class='button' AND @onclick='shippingMethod.save()']
- 使用AND
//button[@class='button' OR @onclick='shippingMethod.save()']
- 使用OR
(//button[@type='button'])[1]
- 使用Index,从1.Trying更改索引值
例如:(//按钮[@type ='button'])[X] 这里X取索引值。