正文部分内容

时间:2019-03-13 13:58:35

标签: python-3.x selenium selenium-webdriver

我经常遇到需要检查句子或段落中是否有一段文字的情况。 为了清楚起见,我们提供了这样的代码

MyText = driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")]')
for list_MyText in MyText:
    print(list_MyText.text)

我得到10个单词的5个不同的句子。例如,我需要检查一下,在5个句子中的每个句子中都有“ Hello”这个词。可以通过什么方式实现?

3 个答案:

答案 0 :(得分:2)

您可以按照以下代码进行创建:

for list_MyText in MyText:
   if 'Hello' in list_MyText.text

答案 1 :(得分:0)

在这里您要数数单词的出现。

MyText = driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")]')
count=0
for list_MyText in MyText:
    print(list_MyText.text)
    if "Hello" in list_MyText.text:
       count=+1
print(count)

答案 2 :(得分:-2)

一种更简单的方法是将条件构建到定位器中。这样,您就不必遍历每个元素,看看它是否包含所需的字符串,例如

driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")][contains(.,'Hello')]')

现在,如果您希望页面上有3个元素,则可以断言其中有3个。

list = driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")][contains(.,'Hello')]')
assertEqual(3, len(list))

有关此声明和其他断言的更多信息,请参见the docs