• selenium提取不了标签文本


    1.举个例子:selenium使用driver.find_element_by_xpath().text 提取不到标签文本??

    如果我们提取的元素文本为空时,而不是我们想要的文本时,这时可能就是因为你所定位的元素被隐藏了,我们确认下是不是真的被隐藏了。。。

    1.判断是否被隐藏      
    aa = driver.find_element_by_xx().is_displayed()  
    print(aa)
    打印结果,如果返回false.那就说明被隐藏了

      2.怎么解决?

    
    

    方法一: 修改页面当前定位元素,或者当前元素父元素的CSS,使元素的is_displayed() 值为true.

    方法二: is_displayed() 为false的元素,依然可以通过getAttribute()方法获取元素的属性.

    
    

    由于webdriver spec的定义,Selenium WebDriver 只会与可见元素交互,所以获取隐藏元素的文本总是会返回空字符串,可是,在某些情况下,我们需要获取隐藏元素的文本。这些内容可以使用element.attribute('attributeName'),

    通过textContent, innerText, innerHTML等属性获取。

    (1)innerHTML 会返回元素的内部 HTML, 包含所有的HTML标签。
    例如,<div>Hello <p>World!</p></div>的innerHTML会得到Hello <p>World!</p>
    (2)textContent 和 innerText 只会得到文本内容,而不会包含 HTML 标签,textContent 是 W3C 兼容的文字内容属性,但是 IE 不支持
    (3)innerText 不是 W3C DOM 的指定内容,FireFox不支持、谷歌也不支持

    举个例子

    ss = driver.find_element_by_class_name('xxx')             # 定位
    print(ss.get_attribute("innerHTML"))                      # 用innerHTML 会返回元素的内部 HTML, 包含所有的HTML标签。
    print(ss.get_attribute('textContent'))                    #用textContent 和 innerText 只会得到文本内容,而不会包含 HTML 标签。                              
    print(ss.get_attribute('innerText'))                      #innerText 不是 W3C DOM 的指定内容,FireFox不支持

     参考https://blog.csdn.net/boyStray/article/details/81065461

  • 相关阅读:
    理解缓慢变化维(Slowly Changing Dimension)
    分析Reporting Service的报表执行记录
    XCOPY
    Esxi主机从VC断开的怪事
    奇怪的SQLserver执行
    明细表达到15亿了
    现在才知道“quota”
    oledb读取Excel数据丢失原因
    配置subversion
    sql服务器的操作系统升级,数据库如何来迁移呢?
  • 原文地址:https://www.cnblogs.com/yfacesclub/p/11155775.html
Copyright © 2020-2023  润新知