Python运行循环直到在list selenium elemen中找到关键字

2024-06-28 11:11:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个元素的列表,它们是这样返回的

<selenium.webdriver.remote.webelement.WebElement (session="d3cf9b70-cdc1-11e7-8b3e-570f82e3aaae", element=":wdc:1511161807512")>
<selenium.webdriver.remote.webelement.WebElement (session="d3cf9b70-cdc1-11e7-8b3e-570f82e3aaae", element=":wdc:1511161807513")>
<selenium.webdriver.remote.webelement.WebElement (session="d3cf9b70-cdc1-11e7-8b3e-570f82e3aaae", element=":wdc:1511161807514")>
<selenium.webdriver.remote.webelement.WebElement (session="d3cf9b70-cdc1-11e7-8b3e-570f82e3aaae", element=":wdc:1511161807515")>

我如何收集它们

^{pr2}$

元素内部有文本,我可以看到这样的文本

print(comment.text)

如何运行循环,直到在元素列表中找到关键字?在

例如,关键字可以是“LakerKobe”。如果它找到了包含我设置的关键字文本的元素,我希望循环停止运行。在

这是我认为有效的方法

for comment in driver.find_elements_by_xpath("//*[contains(text(), '')]"):
    if 'LakerKobe' in comment.text:
        print('found')

但是这种方法是不可靠的。它有效,有时不起作用

keywordMain = 'if you shoot heroin 90% chance your dead already. herion is a different beast'

if 'heroin' in keywordMain:
        print('found')

你会发现什么都没有归还。我使用的是python3.6


Tags: text文本元素remotesessionseleniumcommentelement
3条回答

尝试打印

print 'heroin'.__repr__()  #copy exactly from if condition 
print keywordMain[3].__repr__()

#you will see extra characters which is hidden but makes string different.
'heroin\xef\xbb\xbf'
'heroin'

you can get rid of that character using this simple method.

^{pr2}$

当您通过以下方式收集WebElements时:

for comment in driver.find_elements_by_xpath("//*[contains(text(), '')]"):

WebElements中的一个包含字符串LakerKobe时,要打印Search Found,可以使用以下代码块:

^{pr2}$

更新:

另外,您也可以尝试此选项:

^{3}$

这两个词(“海洛因”在for环和“海洛因”在keywordMain)似乎是平等的,但他们不是。试试看

[ord(i) for i in "heroin"]

两个字你就会得到

^{pr2}$

以及

^{3}$

适当的。在for循环中使用的单词中很少有额外的ASCII字符。在

所以这和硒无关。只需使用精确的关键字

相关问题 更多 >