2016-04-14 8 views
1

次の行使用しているときdiv要素が検出されたすべての子のリスト:最後の子要素を見つけるためにこのXpath文字列について何を変更する必要がありますか?

の場合:

driver.find_element_by_css_selector('div[id="panel2LocListShell"]').find_elements_by_tag_name('div')しかし

最後の子にdiv要素を見つけるために、XPathを使用した場合、タイムアウトエラーがあると例:

WebDriverWait(driver,20).until(EC.presence_of_element_located((By.XPATH, './/div[@id = panel2LocListShell]/div[last()]')))

何、何が、このXPathのについて変更する必要がある場合ライン?:ここ'.//div[@id = panel2LocListShell]/div[last()]'

答えて

1

driver.find_element_by_css_selector('div[id="panel2LocListShell"]').find_elements_by_tag_name('div')

は、セレンはid="panel2LocListShell"div要素内の任意の深さのレベルですべてdiv子要素を見つけるでしょう。この場合

.//div[@id = panel2LocListShell]/div[last()]

、あなたは直接id="panel2LocListShell"div要素の下に位置しdiv要素を探しています。さらに、panel2LocListShellは引用符で囲む必要があります。

固定式:手動スリープタイムアウトがまだXPath式を固定にもかかわらず、必要とされているよう

.//div[@id = "panel2LocListShell"]//div[last()] 
+0

興味深いことに、それが見えます。それ以外の場合は、WebDriverWaitの後ろにある 'div'の完全なリストを取得するときに、エラーが「DOMに追加されなくなりました」というエラーが発生します。それにもかかわらず、役に立つ答え。 – Phillip

関連する問題