首页 > 编程语言 > 详细

python + selenium 获取标签文本的为空解决办法

时间:2019-05-27 17:29:11      阅读:375      评论:0      收藏:0      [点我收藏+]

一、确定元素是否被隐藏

link = driver.find_element(*By_xx, value).is_displayed()
print(link)

如果输出结果为False,说明元素被隐藏了。

二、解决方法

1、修改当前定位元素方式方法(修改定位元素方式,或者修改定位元素的路径等),使用is_displayed()方法定位元素结果为True。

  由于webdriver spec的定义,selenium WebDriver只会与课件元素交互,所以获取隐藏元素的文本信息返回为空字符串。

2、通过get_attribute()方法获取元素的文本信息。

  在获取隐藏元素的文本信息时,可以使用get_attribute()方法,通过textContent、innerText、innerHTML等属性获取。

  innerHTML会返回元素内部的HTML,包含所有的HTML标签。

  textContent和innerText置灰得到文本内容,而不会包含HTML标签。textContent是W3C兼容的文字内容属性,但是IE不支持;innerText不是W3C DOM的指定内容,但是FireFox不支持。

from selenium.webdriver.common.by import By
from test_case.common.home import Page


class CloudMainPage(Page):
    username_input = (By.ID, username)
    password_input = (By.ID, password)
    loging_button = (By.XPATH, //*[@id="loginDiv"]/div[1]/div[1]/ul/li[4]/div[1])
    loging_result = (By.XPATH, //*[@id="tuichuxitong"]/span)

    def user_login(self, username, password):
        """
        用户登录
        :param username: 用户名
        :param password: 密码
        :return:
        """
        self.find_element(*self.username_input).clear()
        self.find_element(*self.username_input).send_keys(username)
        self.find_element(*self.password_input).clear()
        self.find_element(*self.password_input).send_keys(password)
        self.find_element(*self.loging_button).click()

    def login_result(self):
        return self.find_element(*self.loging_result).get_attribute(innerText)

 

python + selenium 获取标签文本的为空解决办法

原文:https://www.cnblogs.com/chen/p/10931424.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!