我有一个 IF-AND 语句无法正常运行。这是在 Python 2.7.9 上发生的情况。
numberOfActiveConfigs = len(driver.find_elements_by_xpath("//select[@id='active_config']/option"))
for cnt in range (0, 5):
print "Count: ", cnt
temp = len(driver.find_elements_by_xpath("//select[@id='active_config']/option"))
print type(numberOfActiveConfigs)
if numberOfActiveConfigs > 3:
cnt = cnt + 1
else:
numberOfActiveConfigs = temp
cnt = 0
print "Number of Configs: ", numberOfActiveConfigs
基本上,代码存储表中的元素数量,然后检查元素数量是否大于 3。如果是,则增加 count 直到达到“5”并停止。打印语句用于调试。
出于某种原因,尽管计数等于“2”,“if”语句仍然返回 TRUE。
Print out:
Count: 0
<type 'int'>
Count: 1
<type 'int'>
Count: 2
<type 'int'>
Count: 3
<type 'int'>
Count: 4
<type 'int'>
Number of Configs: 2
正如您所看到的,值“numberOfActiveConfigs”的类型为“int”,因此这不是我将字符串与 int 进行比较的情况。我不知道为什么会发生这种情况,并且感觉这对我来说将是一个愚蠢的错误。
最佳答案
在我看来,您正在使用一个 for 循环,您想要一个 while 循环,因为 for 循环的范围是 0:5,但您试图在内部更改它(例如 cnt = cnt + 1) 。使用 while 循环,您可以首先设置它 (cnt = 0),然后 while cnt < 5 遍历主体。我认为这会解决你的问题。抱歉,措辞不好。
替换
for cnt in range (0, 5):
与
cnt = o
while cnt < 5:
{body}
关于Python网络驱动程序: If-And Statement Not Working With Numeric Values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31795654/