2017-02-24 9 views
-1

私はWeb Automationの新機能です。サブドロップダウンから値をクリックするときに問題があります。私は、ドロップダウンを表示させるために、スパンを選択し、「特別の適用」リンクをクリックすることができるよ、しかし、関係なく、私は何をすべきか、私は特定の「LI」をヒットすることはできませんSelenium Driver - サブドロップダウンから値をクリックする方法

This is the special I need to add to the order

。私はスパンからすべてのテキストを得ることができますが、実際にそれを作る方法は分かりませんので、特定のスペシャルをクリックします。

@FindBy(css = ".sub-dropdown") 
    protected List<WebElement> specialsTest; 

    @FindBy(id = "ctl00_ctl00_content_content_ucOrderWorkflow_upnlApplyDiscount") 
    protected Element specialItems; 

    public NewOrderPage addSpecificSpecialToOrder(String special) { 
    Reporter.log(String.format("Add special %s to order.", special), true); 
    //This clicks the Apply Special link 
    specialItems.waitUntilVisible().click(); 

    //This prints the content of the span, just to make sure I'm hitting the right dropdown 
    String text = specialsDropDown.waitElementsReady().then().getText(); 
    System.out.println("Dropdown getText " + text); 

//This is my attempt to find the <li> text and click it, but it's not working :(
    for (WebElement li : specialsTest){ 
     System.out.println(li.getText()); 
     if (li.getText().contains(special)) { 
      li.click(); 
      break; 
     } 
    } 


    return this; 

} 

何か助けていただければ幸いです。 ありがとうございます、私は詳細を追加する必要がある場合はお知らせください。

+0

シェア 'HTML'コードを。 –

+0

@Citronex:あなたのアプローチを変更できませんか?注釈ではなく@ findby最初にweb要素をu1まで保存してから、liタグの配列を渡して、liのサイズに応じてそれらをすべて取得することができます。あなたのウェブサイトを共有することができれば、私はあなたを見せることができます。 :-) –

+0

さらに必要なHTMLコードはどれくらいですか?スクリーンショットは十分ではありませんか? – Citronex

答えて

1

私が見たように、あなたがクリックしようとしている要素はタグなので、この要素を指すには正しいロケータを使用する必要があります。我々は使用することができます。

  • リンク/ Partiallinkロケータ
  • のXpathロケータ:.//a[contains(.,'Percentage Discount')]
関連する問題