switch_to select_by_value functions chrome actionchains python xpath selenium

python - select_by_value - Selenium Webdriver encuentra un elemento en un subelemento



switch_to selenium python (2)

Cuando comienza su expresión XPath con // , busca desde la raíz del documento ignorando su elemento principal. Deberías anteponer la expresión con .

element2 = driver.find_element_by_xpath("//div[@title=''div2'']") element2.find_element_by_xpath(".//p[@class=''test'']").text

Estoy intentando buscar un elemento en un subelemento con Selenio (Versión 2.28.0), pero el selenio des no parece limitar su búsqueda al subelemento. ¿Estoy haciendo esto mal o hay una manera de usar element.find para buscar un subelemento?

Por ejemplo, creé una página web de prueba simple con este código:

<!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>

Mi código python (Versión 2.6) se ve así:

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."

Si corro:

print element2.get_attribute(''innerHTML'')

Devuelve el html de la segunda división. Entonces el selenio no está limitando su búsqueda a element2.

Me gustaría poder encontrar un subelemento de element2. Esta publicación sugiere que mi código debería funcionar. Selenium WebDriver tiene acceso a un elemento secundario, pero su problema fue causado por un problema de tiempo de espera.

¿Alguien puede ayudarme a entender lo que está sucediendo aquí?


Use lo siguiente:

element2 = driver.find_element_by_cssselector("css=div[title=''div2'']") element2.find_element_by_cssselector("p[@class=''test'']").text

Por favor, avíseme si tiene algún problema.