我想验证这个词是什么"什么"是粗体还是不粗体

时间:2017-11-03 12:22:23

标签: python selenium firefox selenium-webdriver ui-automation

网站为enter link description here

当你下来时你会找到一些POSTS,所以我想验证是否有什么"写在其中的是粗体或不使用Selenium,最好是Python!

我面临的问题是因为当我使用属性

时,整个文本不是BOLD
element1= driver.find_element_by_xpath(".//*[@id='post-2662']/div/p")

a=element1.value_of_css_property('font-weight')

它给了我400,但是,我只想找到" Anything"是粗体,如果" Anything"以粗体显示然后我们也可以单独搜索它,因为它在标签内但是如果"任何"不是粗体,然后不能单独搜索。

完整的方案是这样的:

*鉴于用户已登录

当他们添加博客时 标题:“这是test_user的博客” 内容“测试用户喜欢博客。博客的内容可以是任何。“

然后查看博客应该以粗体显示“任何东西”*

3 个答案:

答案 0 :(得分:0)

我没有得到您的逻辑,但您只需检查段落是否包含粗体"Anything",如下所示:

element1= driver.find_element_by_xpath(".//*[@id='post-2662']/div/p")
try:
    element1.find_element_by_xpath(".//b[.='anything']")
except:
    print("No bold 'Anything' found")

答案 1 :(得分:0)

你的xpath将是这样的

"//article[1]/div/p[contains(b/text(), 'anything')]"

答案 2 :(得分:0)

我会采取一些不同的方法。当我接近这样的问题时,我会尝试考虑一般(可重用)解决方案。在这种情况下(根据我从您的问题和评论中收集到的内容),您希望了解某个博文中某些文字是否为粗体。使用XPath,您可以指定要检查的博客文章,拉出B(粗体)内的文本,并将其与您期望的内容进行比较。 XPath看起来像

//article[1]//p/b

其中1是您要搜索的博客文章的索引。这将在博客文章#1的文本中找到B标记(如果存在)。所以,考虑到这个XPath ......我们将要确定这个元素是否存在(该帖子中的任何内容都是粗体),如果是,那么从中获取文本并将其与"任何"进行比较。我会将这一切包装在一个函数中以使其可重用

def is_text_bold_in_post(post_index, search_string):
    for bold in driver.find_elements_by_xpath("//article[" + post_index + "]//p/b")
        if search_string in bold.text
            # search string found
            return true
    # not found
    return false