元素在点 (215, 251) 错误处不可点击
Element is Not clickable at point(215, 251) error
我有一个非 angular 应用程序,我在其中单击 link 并出现一个新的弹出模式。然后我可以 select 上传图片或视频。我告诉量角器 and/or webdriver 点击上传照片按钮。
如果我使用:
var addPhotos = element(by.css('#px-select-photo')).click();
我可以直观地看到按钮被按下,但是测试失败并且错误无法点击...(215, 251)
然后我想我可以欺骗它点击 x y 位置(我假设错误中的那两个数字是)但我什么也没得到
我使用的代码是:
browser.actions().mouseMove({
x: 702,
y: 621
}).click().perform();
它点击了,但不是在按钮上。
最后我试了这个:
var addPhotos = element(by.css('#px-select-photo'));
browser.executeScript('arguments[0].scrollIntoView()', addPhotos.getWebElement());
browser.actions().mouseMove(addPhotos).click().perform();
同样没有结果。
此外,我收到此警告:
WARNING - more than one element found for locator By.cssSelector("#px-select-photo")
- the first result will be used
然而,html文件中只有一个元素,也不知道那是什么。
警告可能是解决问题的关键。
使您的选择器更具体并等待上传按钮变得可点击:
var EC = protractor.ExpectedConditions;
var addPhotos = element(by.css('#pxupload3 input#px-select-photo'));
browser.wait(EC.elementToBeClickable(addPhotos), 5000);
addPhotos.click();
另一种选择是通过 px-select-photo
id 和过滤器可见获取所有元素:
var addPhotos = element.all(by.css("#px-select-photo")).filter(function (addButton) {
return addButton.isDisplayed();
}).first();
addPhotos.click();
请尝试以下代码:-
browser.executeScript('arguments[0].click()', addPhotos.getWebElement());
browser.actions().mouseMove(addPhotos).click().perform();
我有一个非 angular 应用程序,我在其中单击 link 并出现一个新的弹出模式。然后我可以 select 上传图片或视频。我告诉量角器 and/or webdriver 点击上传照片按钮。
如果我使用:
var addPhotos = element(by.css('#px-select-photo')).click();
我可以直观地看到按钮被按下,但是测试失败并且错误无法点击...(215, 251)
然后我想我可以欺骗它点击 x y 位置(我假设错误中的那两个数字是)但我什么也没得到
我使用的代码是:
browser.actions().mouseMove({
x: 702,
y: 621
}).click().perform();
它点击了,但不是在按钮上。
最后我试了这个:
var addPhotos = element(by.css('#px-select-photo'));
browser.executeScript('arguments[0].scrollIntoView()', addPhotos.getWebElement());
browser.actions().mouseMove(addPhotos).click().perform();
同样没有结果。
此外,我收到此警告:
WARNING - more than one element found for locator
By.cssSelector("#px-select-photo")
- the first result will be used
然而,html文件中只有一个元素,也不知道那是什么。
警告可能是解决问题的关键。
使您的选择器更具体并等待上传按钮变得可点击:
var EC = protractor.ExpectedConditions;
var addPhotos = element(by.css('#pxupload3 input#px-select-photo'));
browser.wait(EC.elementToBeClickable(addPhotos), 5000);
addPhotos.click();
另一种选择是通过 px-select-photo
id 和过滤器可见获取所有元素:
var addPhotos = element.all(by.css("#px-select-photo")).filter(function (addButton) {
return addButton.isDisplayed();
}).first();
addPhotos.click();
请尝试以下代码:-
browser.executeScript('arguments[0].click()', addPhotos.getWebElement());
browser.actions().mouseMove(addPhotos).click().perform();