分度器のドロップダウンの選択に問題があります
私のドムはこんな感じ
これは、値が「はい」のドロップダウンを選択するためのXPathです。
//label[contains(text(),"is your family safe?")]//parent::app-control-header//following-sibling::select//option[contains(text(),'Yes')]
以下は、上記のXPathでドロップダウンを選択しようとしている方法です。
最初に、選択ブロックを取得して、以下のようにdropDownBlockに格納するXPathを作成しました
dropDownBlock = element(by.xpath('//label[contains(text(),"is your family safe?")]//parent::app-control-header//following-sibling::select'));
FamilysafeDropdown () {
selectDropdownByText(dropDownBlock, "yes");
}
要素ファインダーと文字列を受け入れ、渡された文字列に基づいて値を選択する関数を作成しました
public selectDropdownByText(dropdownElement: ElementFinder, text: string) {
dropdownElement.click();
dropdownElement.element(by.xpath('//option[contains(text(), "' + text + '")]')).click();
}
ここでの私の問題は、コードが常にxpathで要素を見つけることです
//option[contains(text(), "Yes")]"
このXPathを使用すると、DOMに複数のドロップダウンがあります。
XPathで値を選択したかったので
//label[contains(text(),"is your family safe?")]//parent::app-control-header//following-sibling::select//option[contains(text(),'Yes')]
私はここで問題を理解していません、誰かが私を正しい方法で指摘できますか?
この問題は、次のコード行で使用されているxpathに起因します。
dropdownElement.element(by.xpath('//option[contains(text(), "' + text + '")]')).click();
を使用する必要があります。ここ.//option[contains(text(), "' + text + '")]
でのプレフィックス.
は、検索HTML要素がから始まることを意味しますdropdownElement
。
がない場合は.
、HTML要素の検索がHTMLページの最初から始まることを意味します。
XPathで、.
現在のノードを表します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加