Я пытаюсь найти элемент в подэлементе с Selenium (версия 2.28.0), но selenium, похоже, не ограничивает его поиск подэлементом. Я делаю это неправильно или есть способ использовать element.find для поиска подэлемента?
В качестве примера я создал простую тестовую веб-страницу с этим кодом:
<!DOCTYPE html>
<html>
<body>
<div class=div title=div1>
<h1>My First Heading</h1>
<p class='test'>My first paragraph.</p>
</div>
<div class=div title=div2>
<h1>My Second Heading</h1>
<p class='test'>My second paragraph.</p>
</div>
<div class=div title=div3>
<h1>My Third Heading</h1>
<p class='test'>My third paragraph.</p>
</div>
</body>
</html>
Мой код python (версия 2.6) выглядит следующим образом:
from selenium import webdriver
driver = webdriver.Firefox()
# Open the test page with this instance of Firefox
# element2 gets the second division as a web element
element2 = driver.find_element_by_xpath("//div[@title='div2']")
# Search second division for a paragraph with a class of 'test' and print the content
print element2.find_element_by_xpath("//p[@class='test']").text
# expected output: "My second paragraph."
# actual output: "My first paragraph."
Если я запустил:
print element2.get_attribute('innerHTML')
Он возвращает html из второго деления. Таким образом, селен не ограничивает свой поиск элементом2.
Я хотел бы найти подэлемент element2. Это сообщение предполагает, что мой код должен работать Selenium WebDriver для доступа к вспомогательному элементу, но его проблема была вызвана проблемой тайм-аута.
Может кто-нибудь помочь мне понять, что здесь происходит?