2017-07-14 13 views
0

私はdelta.comサイトをSelenium webDriverでテストしようとしています。私はリストフィールドを選択できないことを除いて、すべてうまくいっています。リストが開き、プログラムは何も選択せずにさらに進みます。Selenium javaがリスト要素をクリックしようとしています

たとえば、私は性別を選択しようとしています。

@FindBy(xpath = "//*[@id=\"gender0-button\"]/span[1]") 
private WebElement genderSelection; 
@FindBy(xpath = "//*[@id="gender0-menu"]/li[2]") 
private WebElement genderMale; 

public void setGender(){ 
    genderSelection.click(); 
    genderMale.click(); 
} 

しかし、これ以上何も選択しません。

次に、<select>が隠されていますが、xpath = "// * [@ id =" gender0 "]"です。そこでは、「男性」テキストのオプションをクリックします。あまりにも動作しません。

次に、私はjavascriptを試しました。手動で「男性」に変更すると、<span>にいくつかの属性が変更されます。だから私はこれのようなスムースを行う(idは設定することができる):

js.executeScript("arguments[0].innerText = 'Male'", genderMale); 
js.executeScript("document.getElementById('gender0-button').setAttribute('aria-activedescendant', 'ui-id-74')"); 
js.executeScript("document.getElementById('gender0-button').setAttribute('aria-lablelledby', 'gender0-label ui-id-74 gender0-required')"); 

これも機能しません。それはテキストをスパンに設定しますが、それでも私はジェンダーフィールドを埋もれていないというエラーを受け取ります。

だから誰かが少なくとも性別をどのように設定するか知っているかもしれません。

旅客情報ページへのアクセス:旅行の予約 - >フライト - >往復 - >出発地(JFK-SVOを選択) - >今月の任意の日付 - >正確な日付 - >お金 - >検索フライト - >チケットの種類を選択 - >続行 - >そこにあります。

編集1.解決 HTML of the page

+0

ここに直接HTMLを貼り付けた方が良いでしょう – Mikhail

+0

ページに移動するコードを含めることをお勧めしますか?他の人があなたの問題に取り組むのが簡単になればなるほど、助けてくれる可能性が高くなります:) – NotInventedHere

答えて

0

。私は '男性'オプションを強調表示し、次にクリックする必要がありました。

genderSelection.click(); 
genderMale.sendKeys("Male"); 
genderMale.click();