【问题标题】:Multiple if conditions in Python Selenium (Firefox)Python Selenium (Firefox) 中的多个 if 条件
【发布时间】:2021-01-03 23:32:19
【问题描述】:

是的,我读过其他帖子,例如:Styling multi-line conditions in 'if' statements?

我有这段代码,我想检查给定页面上是否存在特定文本。由于某些原因,该代码仅适用于一种条件,而不适用于 2 个或更多。

import requests

r = requests.get('http://example.com/')

if 'ghcjdfghfgh' or 'fgxhdfghdfyh' in r.text:
    print ('Yes')
else:
    print ('No')

它说是,即使它不是真的。我用逗号而不是“或”尝试了相同的代码,但仍然是同样的问题。

import requests
r = requests.get('http://example.com/')

if 'ghcjdfghfgh','fgxhdfghdfyh' in r.text:
    print ('Yes')
else:
    print ('No')

【问题讨论】:

    标签: python-3.x selenium if-statement firefox


    【解决方案1】:

    试试这个:

    if 'ghcjdfghfgh' in r.text or 'fgxhdfghdfyh' in r.text:
        print ('Yes')
    else:
        print ('No')
    

    或者如果你想扩展它,使用this answer的技术:

    a_string = "A string is more than its parts!"
    matches = ["more", "wholesome", "milk"]
    
    if any(x in a_string for x in matches):
    

    【讨论】:

      【解决方案2】:
      if 'ghcjdfghfgh' or 'fgxhdfghdfyh' in r.text:
          print ('Yes')
      else:
          print ('No')
      

      这会检查 ghcjdfghfgh true 或 'fgxhdfghdfyh' in r.text 是否为 true ,因为默认情况下所有字符串都是 true 。 ghcjdfghfgh 是真的

      所以这总是正确的。

      如果您想测试 r.text 中是否有任何字符串,您可以使用:

      if any(x in r.text for x in ['ghcjdfghfgh','fgxhdfghdfyh']):
          print("hi")
      

      【讨论】:

        【解决方案3】:

        问题是在这个语句中:

        if 'ghcjdfghfgh' or 'fgxhdfghdfyh' in r.text:
        

        您实际上是在问两个不同的问题; (一世): 如果“ghcjdfghfgh”为真! (二): 如果 'fgxhdfghdfyh' 在 r.text 中。 问题是(I)总是正确的;因此无论如何你都会得到“是”!

        我可以想出 3 种方法来获得您想要的结果: 第一::

        if 'ghcjdfghfgh' in r.text or 'fgxhdfghdfyh' in r.text:
            print ('Yes')
        else:
            print ('No')
        

        第二个::

        if r.text.find('ghcjdfghfgh') != -1 or r.text.find('fgxhdfghdfyh') != -1:
            print ('Yes')
        else:
            print ('No')
        

        第三(最好的)::

        if any(partial_text in r.text for partial_text in ['ghcjdfghfgh','fgxhdfghdfyh']):
            print('Yes')
        else:
            print('No')
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-03
          • 2015-03-30
          • 2020-04-10
          • 2016-01-20
          • 2015-02-07
          • 1970-01-01
          相关资源
          最近更新 更多