使用这些命令我得到三个句子。
AnyText = driver.find_elements_by_xpath('AnyXpath')
for AnyText1 in AnyText:
print(AnyText1.text)
在控制台中,我得到类似的东西:
** 1)您好,我的名字是约翰
** 2)您好,我的名字是马克
** 3)您好,我的名字是Alex ..
如果单词在句子(元素)中,我怎么能检查所有三个句子都有单词“name”并打印(“OK”),如果没有,则打印(“ERROR”)。我试试:
AnyText = driver.find_elements_by_xpath('AnyXpath')
Text = 'name'
if all(Text in AnyText1 for two in AnyText1):
print('OK')
else:
print('ERROR')
但是这个方法只检查第一个元素(第一个句子)。我也试过这样的事
AnyText = driver.find_elements_by_xpath('AnyXpath')
Text = 'name'
for AnyText1 in AnyText:
if all(Text in AnyText1):
print('OK')
else:
print('ERROR')
但我得到很多次OK或ERROR
UPD:关于案文的问题,我在你的帮助下找到了答案。现在我想了解数字)
我有一个循环,可以或多或少地检查下一个数字。如果更多,写ERROR,如果更少,写入OK
sort_month=driver.find_element_by_xpath('/html/body/div[6]/div[2]/div/div[1]/div/div[13]/table/thead/tr/th[3]/a[4]').click()
month2=driver.find_element_by_xpath('//*[starts-with(@id, "td_")]/td[3]/span[3]')
month2=month2.text.replace("'", "").replace(" ", "")
buffer = 0
if int(month2) > buffer:
print()
buffer = int(month2)
month1=driver.find_elements_by_xpath('//*[starts-with(@id, "td_")]/td[3]/span[3]')
for spisok_month in month1:
spisok_month = spisok_month.text.replace("'", "").replace(" ", "")
if int(spisok_month) > buffer:
print('ERROR')
elif int(spisok_month) < buffer:
print('OK')
else:
print('==')
buffer = int(spisok_month)
在这里,我也希望只看一次OK或ERROR。有任何想法吗?
问题似乎是你的第一个代码片段中的简短循环形式。基本上它应该如下所示:
AnyText = driver.find_elements_by_xpath('AnyXpath')
Text = 'name'
if all(Text in AnyText1.text for AnyText1 in AnyText):
print('OK')
else:
print('ERROR')
更新:
在问题的更新部分,这是一个不同的实现,因为您必须在每次迭代中更新条件。为了便于阅读,保持扩展可能是有意义的:
outcome = 'OK'
for spisok_month in month1:
spisok_month = spisok_month.text.replace("'", "").replace(" ", "")
if int(spisok_month) > buffer:
outcome = 'ERROR'
elif outcome == 'OK' and int(spisok_month) == buffer:
outcome = '=='
buffer = int(spisok_month)
print(outcome)
注意:更新几乎是一个单独的问题。这意味着您的第一个问题不能代表实际问题,或者您应该在另一个帖子中提问
在你的代码中,AnyText1
是一个WebElement,而不是一个文本。您应该使用AnyText1.text
来获取文本,然后它将工作:
AnyText = driver.find_elements_by_xpath('AnyXpath')
Text = 'name'
# AnyText1 is a WebElement and you should get text
if all(Text in AnyText1.text for AnyText1 in AnyText):
print('OK')
else:
print('ERROR')
请检查coding conventions以改进代码风格。