使用这些命令,我得到了三个句子。
AnyText = driver.find_elements_by_xpath('AnyXpath')
for AnyText1 in AnyText:
print(AnyText1.text)
在控制台中,我得到类似的东西:
** 1)你好,我叫约翰
** 2)你好,我叫马克
** 3)你好,我叫亚历克斯。
如何检查所有三个句子的单词“ 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一次。 有什么想法吗?
答案 0 :(得分:2)
问题似乎出在您的第一个代码段的循环缩写。基本上应该如下所示:
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)
注意:此更新几乎是一个单独的问题。这意味着您的第一个问题不能代表实际问题,或者您应该在单独的帖子中提问
答案 1 :(得分:0)
在您的代码中,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以改善代码风格。