2016-11-01 10 views
0

私は、定義済みのBy要素を使用してBy要素xpathを定義します。どのように定義する要素xpath別のBy要素を使用してSelenium WebDriverを使用

例: 私は、次のことによって、要素が定義されています:

private By firstExpander = By.xpath("//div[@id = 'language-expander']"); 

を今、私は要素によって別のものを定義したい、それがこの要素のDOM構造の子である、例えばこれの名前を "言語エキスパンダー '私は、次の試してみました:

private By firstExpanderName = By.xpath(firstExpander.toString() + "/div[1]/a"); 

が、それは結果の文字列中の親の「By.xpath」の部分を含んでいます。そして私はこれが間違っていると確信しています。どのようにこれを正しく行うための提案?

+0

をあなたはあなたの特定のケースでは正しいが、適用されませんあなたの問題は、より具体的な回避ソリューションを作るために使用するプログラミング言語やフレームワークのためのタグを追加する必要があります – Andersson

答えて

0

String div = "//div[@id = 'language-expander']"; 
private By firstExpander = By.xpath(div); 
private By firstExpanderName = By.xpath(div + "/div[1]/a"); 
0

が変数に親XPath文字列を割り当て、これを試してみてください。後でそれに任意の文字列を追加して、子xpathを派生させることができます。

0

このようにそれを試してみてください -

private By firstExpanderName = firstExpander.findElement(By.xpath(".//div[1]/a")) 
0
WebElement wb1 = driver.findElement(By.xpath("")); 
WebElement wb2 = wb1.findElement(By.xpath("")); 
wb2.[YourAction] 
+0

こんにちはヘマント;あなたのコードは正しいかもしれませんが、いくつかの文脈ではより良い答えになります。たとえば、この提案された変更がどのようにしてなぜ問題の問題を解決するのか、そしておそらく関連文書へのリンクを含む理由を説明することができます。そうすれば、彼らにとってより有用になり、同様の問題に対する解決策を探している他のサイトの読者にとってもより有用になります。 –

+0

ここでは親オブジェクトの子オブジェクトを見つけることを試みています。したがって、上記の説明ではwb1は親オブジェクトですが、wb2は子オブジェクトでなければなりません。子オブジェクトがあると期待される場合はwb2をリストとして使用します複数の。ありがとうございました。 –

関連する問題