我无法理解python中的逻辑。这是代码:
maxCounter = 1500
localCounter = 0
while True:
print str(localCounter) + ' >= ' + str(maxCounter)
print localCounter >= maxCounter
if localCounter >= maxCounter:
break
localCounter += 30
结果输出:
...
1440 >= 1500
False
1470 >= 1500
False
1500 >= 1500
False
1530 >= 1500
False
1560 >= 1500
False
...
我在那里有无限循环。为什么呢?
topPos = someClass.get_element_pos('element')
scrolledHeight = 0
while True:
print str(scrolledHeight) + ' >= ' + str(topPos)
print scrolledHeight >= topPos
if scrolledHeight >= topPos:
print 'break'
break
someClass.run_javascript("window.scrollBy(0, 30)")
scrolledHeight += 30
print scrolledHeight
time.sleep(0.1)
答案 0 :(得分:4)
要修复您的代码,请尝试以下操作:
topPos = int(someClass.get_element_pos('element'))
<强>为什么吗
当我复制并粘贴原始代码时,我得到了这个:
...
1440 >= 1500
False
1470 >= 1500
False
1500 >= 1500
True
我可以找到一个小的更改,让您的代码重现您所看到的行为是将第一行更改为:
maxCounter = '1500' # string instead of integer
进行此更改后,我还可以看到您获得的输出:
1410 >= 1500
False
1440 >= 1500
False
1470 >= 1500
False
1500 >= 1500
False
1530 >= 1500
False
etc..
答案 1 :(得分:1)
问题似乎出现在这一行:
topPos = someClass.get_element_pos('element')
这可能会将字符串分配给topPos
,而不是数字变量。您需要将此字符串转换为数字变量,以便对其进行数字比较。
topPos = int(someClass.get_element_pos('element'))
否则,例如在CPython v2.7的实现中,任何int
总是要比任何字符串都要少。