У меня есть оператор 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. Если это так, то он увеличивает счетчик до тех пор, пока не достигнет «5» и остановится. Операторы печати предназначены для отладки.
По какой-то причине оператор «если» продолжает возвращаться как ИСТИНА, несмотря на то, что счетчик равен «2».
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', так что это не тот случай, когда я сравниваю строку с целым числом. Я понятия не имею, почему это происходит, и чувствую, что это будет глупой ошибкой с моей стороны.