在def循环中将变量增加1的位置在哪里?

时间:2018-08-29 18:27:57

标签: python selenium

我有这段代码:

if storagetypecheck1 == "Virtual":
        def storagecheck():
            d = 1
            dforid = str(1-d)
            while d <= int(numcount): 
                storageidprefix = "specimen" + "[" + dforid + "]"
                driver.find_element_by_id(storageidprefix + ".storageContainerForSpecimen").click()
                pag.press('a')
                pag.press('enter')
                time.sleep(1)
                d = d + 1
                storagecheck()
        storagecheck()

将网络表单的存储类型设置为虚拟时,它将运行并在文本框中将其更改为自动。

问题在于它必须使用多个specimen[x].storageContainerForSpecimen格式的文本框。

但是,当我运行这段代码时,它只是一遍又一遍地循环,而没有将d的值更改为23等。

我尝试在d = 1语句的上方放置if,但随后在第dforid = str(1-d)行中指出d没有定义。

我应该在哪里放置d = 1表达式,以便它可以被storagecheck()循环识别,同时还可以每个循环增加1

1 个答案:

答案 0 :(得分:1)

storagecheck()进行递归调用。每次调用它自己时,都会执行行d = 1,因此d的值将被重置。您需要将d的功能定义的d 放置在if storagetypecheck1 == "Virtual": d = 1 def storagecheck(): global d dforid = str(1-d) while d <= int(numcount): storageidprefix = "specimen" + "[" + dforid + "]" driver.find_element_by_id(storageidprefix + ".storageContainerForSpecimen").click() pag.press('a') pag.press('enter') time.sleep(1) d = d + 1 storagecheck() storagecheck() 之外,以继续递增,就像这样:

global

我们使用关键字data "template_file" "example" { template = "${file("example.tpl")}" vars { foo = "foo" bar = "bar" } } resource "null_resource" "update_task_definition" { triggers { keys = "${uuid()}" } provisioner "local-exec" { command = <<EOF echo ${jsonencode(data.template_file.example.rendered)} EOF } } 将变量d引入函数的名称空间。