Python网络驱动程序: If-And Statement Not Working With Numeric Values

标签 python python-2.7 selenium selenium-webdriver webdriver

我有一个 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/

相关文章:

javascript - selenium-webdriver 与 webdriverjs 有什么区别(以及何时使用)?

python - word2vec gensim更新学习率

python - 计算两个字符串中的字符数的问题

javascript - 如何从脚本中提取数据?

regex - Selenium Python 如何使用正则表达式查找字符串值中的 2 位数字

java - 如何使用 XPATH 搜索包含 JAVA 中的 Selenium 测试类的跨度

python - 将图像与列表进行比较 Python

python - 进程在 MPIPoolExecutor 初始化之前生成。此外,我可以将 HPC 与 ProccesPoolExecutor 一起使用吗?

python - 如何在Python中创建矩阵AxB?

Selenium Webdriver 连接池