2017-10-11 27 views
0

私はC#を使用してSelenium Web Driverで自動化しようとしていますが、imはドロップダウンボックスで項目を選択しようとしています。しかし、これは通常のドロップダウンではなく、リストから特定の項目を選択することはできません。ドロップダウンを開くことができますが、検索フィールドにテキストを送信しようとすると「表示されない要素」と表示されます。私もドロップダウンで項目を見つけることを試みたが、それでもオプションを見つけるためにそれを得ることができません。以下は私のコードとドロップダウンのHTMLです。Selenium Webドライバがドロップダウンで項目を見つけようとしています

任意のヘルプは非常に

var ChooseAsset = driver.FindElementById("uiAssetIdDdl_chosen"); 
      ChooseAsset.Click(); 
      var SelectAsset = driver.FindElement(By.XPath("//*[contains(., 'Airbus A300-603 [SN: AR-PL-241]')]")); 
      SelectAsset.Click(); 

<ul class="chosen-results"><li class="active-result highlighted" data-option-array-index="1" style="">CFM International LEAP-1A26 [SN: ABC123]</li><li class="active-result" data-option-array-index="2" style="">Airbus A300-603 [SN: AR-PL-139]</li><li class="active-result" data-option-array-index="3" style="">Airbus A300-603 [SN: AR-PL-152]</li><li class="active-result" data-option-array-index="4" style="">Airbus A300-603 [SN: AR-PL-241]</li><li class="active-result" data-option-array-index="5" style="">Airbus A300-603 [SN: AR-PL-258]</li><li class="active-result" data-option-array-index="6" style="">Airbus A300-603 [SN: AR-PL-307]</li><li class="active-result" data-option-array-index="7" style="">Airbus A300-603 [SN: AR-PL-309]</li><li class="active-result" data-option-array-index="8" style="">Airbus A300-603 [SN: AR-PL-369]</li><li class="active-result" data-option-array-index="9" style="">Airbus A300-603 [SN: AR-PL-38]</li><li class="active-result" data-option-array-index="10" style="">Airbus A300-603 [SN: AR-PL-458]</li><li class="active-result" data-option-array-index="11" style="">Airbus A300-603 [SN: AR-PL-502]</li><li class="active-result" data-option-array-index="12" style="">Airbus A300-603 [SN: AR-PL-608]</li><li class="active-result" data-option-array-index="13" style="">Airbus A300-603 [SN: AR-PL-62]</li><li class="active-result" data-option-array-index="14" style="">Airbus A300-603 [SN: AR-PL-655]</li><li class="active-result" data-option-array-index="15" style="">Airbus A300-603 [SN: AR-PL-664]</li><li class="active-result" data-option-array-index="16" style="">Airbus A300-603 [SN: AR-PL-694]</li><li class="active-result" data-option-array-index="17" style="">Airbus A300-603 [SN: AR-PL-749]</li><li class="active-result" data-option-array-index="18" style="">Airbus A300-603 [SN: AR-PL-816]</li><li class="active-result" data-option-array-index="19" style="">Airbus A300-603 [SN: AR-PL-875]</li><li class="active-result" data-option-array-index="20" style="">Airbus A300-603 [SN: AR-PL-888]</li><li class="active-result" data-option-array-index="21" style="">Airbus A300-603 [SN: AR-PL-892]</li></ul>

+0

あなたはURLを共有してください。 – iamsankalp89

+0

あなたはr xpathsは複数の要素を返します – iamsankalp89

+0

ようこそスタックオーバーフロー! HTMLやコードを投稿するときは、http://jsbeautifier.org/やIDEのような美化器を使用して、すべてを適切にフォーマットしてください。サイトで適切に書式設定するための助けが必要な場合は、質問エディタのサイドバーにある書式設定ヘルプのリンクを参照してください。それはあなたの質問に答えが出る可能性が高くなるように、それを読むのをより簡単にします。ありがとう! – JeffC

答えて

2

あなたは、XPath

*//li[@class='active-result'][contains(text(),'Airbus A300-603 [SN: AR-PL-888')]* 

か、それはあなたができる動作しない場合は、次の試みることができますul経由でアンカーする

var SelectAssets = driver.FindElements(By.XPath("//ul[@class="chosen-results"]/li[]")); 

for(int i=0;i<SelectAssets.length;i++){ 
if(SelectAssets[i].getText()="Airbus A300-603 [SN: AR-PL-888") 
SelectAssets[i].click(); 
break; 
} 
+0

私はC#で偉大ではないので、構文についてはわかりませんが、ループは単純です。 –

+0

良い答え@ Aarya Hareendranath。私のxpathも確認してください。それは動作するかどうか – iamsankalp89

0

を高く評価され、これは

  1. 選択エアバスA300-603のXPath試してみてください[SN:AR-PL-892]

    //li[@class='active-result'][contains(text(),'Airbus A300-603 [SN: AR-PL-888')] 
    
  2. 選択エアバスA300-603 [SN:AR-PL-875]

    //li[@class='active-result'][contains(text(),'Airbus A300-603 [SN: AR-PL-875')] 
    
+0

あなたはxpathsをチェックしていますか? – iamsankalp89

関連する問題