我有这段代码:
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
的值更改为2
,3
等。
我尝试在d = 1
语句的上方放置if
,但随后在第dforid = str(1-d)
行中指出d
没有定义。
我应该在哪里放置d = 1
表达式,以便它可以被storagecheck()
循环识别,同时还可以每个循环增加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引入函数的名称空间。