Difference between text and innerHTML using Selenium

后端 未结 5 1075
闹比i
闹比i 2020-11-22 15:40

Whats the difference between getting text and innerHTML when using selenium. Even though we have text under particular element, when we perform

5条回答
  •  星月不相逢
    2020-11-22 16:09

    I have just selected the css selector and used below code:

    from selenium import webdriver
    
    
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get("http://www.costco.com/Weatherproof%C2%AE-Men's-Ultra-Tech-Jacket.product.100106552.html")
    print driver.find_element_by_css_selector(".product-h1-container.visible-xl-block>h1").text
    

    and it prints:

    Weatherproof® Men's Ultra Tech Jacket
    

    The problem is h1[itemprop='name'] selector on chrome or firefox are returning 2 matching nodes while .product-h1-container.visible-xl-block>h1 is returning only one matching node thats why its prining what is expected

    To prove my point run below code:

    from selenium import webdriver
    
    
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get("http://www.costco.com/Weatherproof%C2%AE-Men's-Ultra-Tech-Jacket.product.100106552.html")
    x= driver.find_elements_by_css_selector("h1[itemprop='name'] ")
    
    for i in x:
        print "This is line " , i.text
    

    It will print

    This is line  
    This is line  Weatherproof® Men's Ultra Tech Jacket
    

    Because select_element_by_css_selector selects the first element with matching selector and that does not contain any text so it does not print. Hope you understand now

提交回复
热议问题