2

オートコンプリートの最初の要素を選択することができません分度器でng-autocompleteの要素を選択するにはどうすればよいですか?

sendKeys("dublin,south Africa"); 

を通じてテキストを渡します。

+1

のSendKeysだけのテキストフィールドにテキストを入力します。オートコンプリートドロップダウンから必要な値をクリックするようにスクリプトを作成する必要があります。あなたは現在直面している問題についての詳細情報を提供できますか? –

+0

私はロケーションフィールドを持っています。ユーザーが都市名を入力すると、都市名が認識され、都市名の候補が表示されます。@ SudharsanSelvaraj – Shiva

+0

都市名を入力すると、ドロップダウン候補が表示されるのを待ちます。提案リストから必要な都市名をクリックします。 –

答えて

1

問題が解決しました。

this.checkin = function(text,index){ 
     element(by.css('[ng-click="showMapTextBox2()"]')).click(); 
     // element(by.model("location")).sendKeys(text); 
     browser.actions() 
     .mouseMove(element(by.model("location")) 
     .sendKeys(text)) 
     .perform().then(function(){ 
     browser.sleep(500); 
     // press the down arrow for the autocomplete item we want to choose 
     for(i = 0; i < index ; i++){ 

      browser.actions().sendKeys(protractor.Key.ARROW_DOWN).perform(); 
     } 
     browser.sleep(500); 
     browser.actions().sendKeys(protractor.Key.ENTER).perform(); 
     }); 
     browser.sleep(3000); 
    }; 

spec_testコード:

post_text.checkin("new Delhi, India",1); 
0

テストで実行する内容を手動で入力し、オートコンプリートの要素を調べます。 protractor.ExpectedConditionsを使用してその要素を待ってから、キーを送信した後にその要素をクリックします。

+0

のリストから最初のものを選択する必要があります。@ doct03 – Shiva

0

あなたは2つの物事実行する必要があります。

  1. は、テキストを入力します。時には
  2. C#でオプションダウン

例のコードを適切なドロップを選択してオプションを表示するオートコンプリートを強制するには、Tabキーを押すために必要とされています

fieldElement.ClearAndSendKeys(partialValue); 
fieldElement.SendKeys(Keys.Tab); 
GetFieldDropdown(completeValue).Click(); 

GetFielDropdown()メソッドの詳細は、あなたのDOMに依存します。そのまま動作しませんコードの上に表示されているオートコンプリートの遅延がある場合(FindElementが要素を返さない)こと

private IWebElement GetFieldDropdown(string dropdownValue) 
{ 
    return FindElement(By.XPath($"//span[contains(.,'{dropdownValue}')]")); 
} 

注:ここで私が働いているプロジェクトから簡略化した例です。クリックする前にドロップダウンオプションが表示されるのを待つ必要があります。

PS - partialValueとcompleteValueは同じにすることができます

+0

ありがとう@Ory Zaidenvorm。このような書かれたコード。 this.checkin = function(value){ \t \t var EC = protractor.ExpectedConditions; \t \t要素(by:[ng-click = "showMapTextBox2()"] ')).click(); \t \t var enterLocation =要素(by.model( "location")); \t \t browser.wait(EC.visibilityOf(enterLocation)、10000、 'enterLocation not found'); \t \t browser.sleep(5000); \t \t var ExpList = enterLocation.sendKeys(value); \t \t expect(ExpList.isDisplayed())。toBe(true); \t \t expect(ExpList.getText())。toEqual( 'Hyderabad、Telangana、India'); \t \t browser.sleep(4000); \t}; – Shiva

+0

@ Shiva私はあなたが行に問題があると思います。var ExpList = enterLocation.sendKeys(value);あなたはSendKeysを設定し、ExpListを設定(find)しなければなりません(私が提供した例のGetFileDropdownメソッドと同じです)。 –

関連する問題