3
我们有一个表单,它有几个单独的提交按钮,可以执行不同的操作。问题是我有几个按钮,它们具有以下HTML:机械化提交
<input type="submit" name="submit" value="Submit" class="submitLink" title="Submit" />
<input type="submit" name="submit" value="Delete" class="submitLink" title="Delete" />
现在,您不能通过标准的find_control函数按值查找元素。所以我写了一个谓语功能,会发现我的元素,我当时希望通过以下方式点击:
submit_button = self.br.form.find_control(predicate=submit_button_finder)
self.br.submit(submit_button)
但是都提交并单击内部调用发现元素,并没有方法可以让你的加入谓词关键字,所以像这样的调用也不起作用:
self.br.submit(predicate=submit_button_finder)
有什么我失踪了?!?
更新:
附加了辅助函数来检索满足所述条件为这样的所有元素:
def find_controls(self, name=None, type=None, kind=None, id=None, predicate=None, label=None):
i = 0
results = []
try :
while(True):
results.append(self.browswer.find_control(name, type, kind, id, predicate, label, nr=i))
i += 1
except Exception as e: #Exception tossed if control not found
pass
return results
然后替换下面的行:
submit_button = self.br.form.find_control(predicate=submit_button_finder)
self.br.submit(submit_button)
随着:
submit_button = self.br.form.find_control(predicate=submit_button_finder)
submit_buttons = self.find_controls(type="submit")
for button in submit_buttons[:]:
if (button != submit_button) : self.br.form.controls.remove(button)
self.br.submit()
我很确定你不应该在页面上有两个同名的按钮。这可能是你的问题的一部分。 – 2010-12-21 19:52:16
@Alex我不幸的是没有控制,但。 – Scott 2010-12-21 19:54:49