无法使用量角器单击按钮。 DOM如图所示。
下面是一些我已经尝试过的定位器。
错误1:在点(78,106)不可单击。其他元素将获得点击:...
错误2:使用定位器找不到元素:By(css选择器,* / deep / mat-button-ripple mat-ripple)等等
预期:要单击的“查看”按钮 实际:点击未登陆按钮
答案 0 :(得分:1)
似乎当您收到错误1时,您正在正确定位该元素,它只是返回了not clickable at point...
错误。您可以尝试创建一个滚动到该元素的函数,然后等待其被单击。请尝试以下操作:
const EC = protractor.ExpectedConditions;
const yourElement = ; // <--- whatever locator worked
const clickElement = async () => {
await browser.executeScript('arguments[0].scrollIntoView(true)', yourElement.getWebElement());
await browser.wait(EC.elementToBeClickable(yourElement), 5000);
await yourElement.click();
};
也可以尝试使用这种类型的定位器:
element(by.css('.mat-nav-list.mat-list-base button span'));
答案 1 :(得分:1)
因为我没有您的html页面源,所以我将开始从查看。在html页面之后,如果在量角器中使用对象页面,则可以使用:
var EC = protractor.ExpectedConditions;
var button = element(by.css("mat-slidenav.layout-navigator .mat-nav-list button.mat-list-header"));
this.clickLookButton = function(){
browser.wait(EC.presenceOf(button));
browser.wait(EC.elementToBeClickable(button));
browser.executeScript("arguments[0].click();", button.getWebElement());
};
您可以使用量角器单击功能代替代码行
browser.executeScript("arguments[0].click();", button.getWebElement());
如果使用量角器单击功能:
button.click();
祝你好运!