基本上,页面中有3种类型的“保存”按钮。现在,我尝试点击的按钮是type="button"
,其余类型的保存未定义为type="button"
。对于所有三个保存按钮,LinkText
定义为保存。那么,是否可以通过type="button"
点击linkText
。
HTML:
<button class="btn btn-md bgm-blue m-r-10 waves-effect" ng-click="updateUser()" type="button">Save</button>
我尝试的代码:
List<WebElement> list = Util.getWebDriver().findElements(By.xpath("//*[text()='Save']"));
System.out.println("SaveButton"+list.size()); ///Returning 3 save button in a page
list.get(3).click();
现在,假设在一个页面中有4个保存按钮,在另一个页面中有3个保存按钮。因此,不可能制作方法,因为每次索引都会有所不同。
如果有任何方法可以xpath
找到type="button"
。每次我想点击"Save"
时,我都很容易制作一个方法并调用它。
如有澄清,请告知我。
答案 0 :(得分:3)
有没有办法点击type =&#34; button&#34;通过linkText
实际上By.linkText()
用于在您尝试查找<a>
元素时仅查找包含指定链接文字的<button>
元素。因此,您无法使用By.linkText()
找到欲望元素。
我尝试点击的按钮是
type="button"
,其余类型的保存未定义为type="button"
正如您所说,只有欲望按钮包含属性type="button"
,所以很容易使用其他定位器找到该元素,如下所示: -
button[type='button']
button[type='button'][ng-click='updateUser()']
button.btn.btn-md.bgm-blue.waves-effect[type='button'][ng-click='updateUser()']
//button[text()='Save' and @type='button']
//button[.='Save' and @type='button']
//button[text()='Save' and @type='button' and @ng-click='updateUser()']
//button[.='Save' and @type='button' and @ng-click='updateUser()']
答案 1 :(得分:0)
由于angular.element(document.querySelector('.mydiv')).bind( 'mousewheel', function ( e ) {
var event = e.originalEvent;
var d = event.wheelDelta || -event.detail;
this.scrollTop += ( d < 0 ? 1 : -1 ) * 30;
e.preventDefault();
});
按钮包含Save
属性,您可以按如下方式构建class
:
xpath