5

リンクをクリックして新しいポップアップモーダルが表示される非角形のアプリケーションがあります。その後、画像や動画のアップロードを選択できます。分度器やウェブドライバーに写真のアップロードボタンをクリックするように伝えます。ポイント(215,251)のエラーで要素がクリックできない

私が使用している場合:

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

私は視覚的にボタンがしかし、テストが失敗したとのエラークリッカブルされていない押されて見ることができます...(215、251)

それでは私は(私はエラーでこれら2つの数値をしていると仮定している)のxy位置をクリックにそれをだましと考えていたと私は何も取得しない

私はそのために使用するコードは次のとおりです。

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ファイルであり、程度のいずれかのすべてのthatsのか分かりません。

+0

あなたの心を失うことはありません。最初にその警告について何か理解しましょう。セレクタをより具体的にするにはどうすればいいですか? '#pxupload3 input#px-select-photo'と言ってください。違いはありますか? – alecxe

+0

@alecxe#pxupload3の要素が見つかりませんでした。 –

+1

browser.executeScript( 'arguments [0] .click()'、addPhotos.getWebElement()); browser.actions()。mouseMove(addPhotos).click()。perform(); –

答えて

1

下記のコードを試してください: -

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

警告は、問題を解決するための鍵となる場合があります。

クリック可能になるために、あなたの選択、アップロードボタンのより具体的な待機を行います。

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(); 
+0

私はこのメソッドに慣れていないごめんなさい。私はECを何と定義しますか? –

+0

@NicolePhillips確かに更新されました。 – alecxe

+0

待ち時間がタイムアウトしました –

関連する問題