5

Tôi có một ứng dụng không góc cạnh nơi tôi nhấp vào liên kết và một phương thức bật lên mới xuất hiện. Sau đó tôi có thể chọn tải ảnh hoặc video lên. Tôi nói với thước đo góc và/hoặc webdriver nhấp vào nút tải lên ảnh.Phần tử không thể nhấp vào tại thời điểm (215, 251) lỗi

Nếu tôi sử dụng:

var addPhotos = element(by.css('#px-select-photo')).click(); 

tôi trực quan có thể thấy nút bị ép xuống tuy nhiên thử nghiệm sau đó thất bại và lỗi không thể nhấp vào ... (215, 251)

Vì vậy, sau đó tôi nghĩ tôi có thể lừa nó vào vị trí cách nhấn xy (mà tôi giả sử hai con số trong các lỗi được) và tôi nhận được gì

Mã tôi đã sử dụng cho điều đó là:

browser.actions().mouseMove({ 
    x: 702, 
    y: 621 
}).click().perform(); 

Nó nhấp, nhưng không phải trên nút.

Cuối cùng tôi đã cố gắng này:

var addPhotos = element(by.css('#px-select-photo')); 
browser.executeScript('arguments[0].scrollIntoView()', addPhotos.getWebElement()); 
browser.actions().mouseMove(addPhotos).click().perform(); 

nào cũng mang lại kết quả nào.

Ngoài ra, tôi nhận được cảnh báo này:

WARNING - more than one element found for locator By.cssSelector("#px-select-photo") - the first result will be used

Tuy nhiên, chỉ có một phần tử trong tập tin html, không biết những gì thats tất cả về một trong hai.

+0

Đừng để mất trí. Trước hết hãy hiểu cảnh báo đó là gì. Làm thế nào về bạn làm cho bộ chọn của bạn cụ thể hơn - nói '# pxupload3 input # px-select-photo'? Liệu nó có bất kỳ sự khác biệt? – alecxe

+0

@alecxe Chỉ cố gắng Tôi không gặp lỗi phần tử nào cho # pxupload3 –

+1

browser.executeScript ('arguments [0] .click()', addPhotos.getWebElement()); browser.actions(). MouseMove (addPhotos) .click(). Perform(); –

Trả lời

1

Vui lòng thử mã bên dưới: -

browser.executeScript('arguments[0].click()', addPhotos.getWebElement()); 
browser.actions().mouseMove(addPhotos).click().perform(); 
1

Cảnh báo có thể là chìa khóa để giải quyết vấn đề.

Hãy chọn của bạn hơn cụ thểchờ nút tải lên để trở thành có thể click:

var EC = protractor.ExpectedConditions; 
var addPhotos = element(by.css('#pxupload3 input#px-select-photo')); 

browser.wait(EC.elementToBeClickable(addPhotos), 5000); 
addPhotos.click(); 

lựa chọn thay thế sẽ là để có được tất cả các yếu tố của px-select-photo id và lọc có thể nhìn thấy:

var addPhotos = element.all(by.css("#px-select-photo")).filter(function (addButton) { 
    return addButton.isDisplayed(); 
}).first(); 
addPhotos.click(); 
+0

Tôi xin lỗi tôi không quen thuộc với phương pháp này. Tôi định nghĩa EC là gì? –

+0

@NicolePhillips chắc chắn, đã cập nhật. – alecxe

+0

Đợi đã hết thời gian chờ –

Các vấn đề liên quan