作为一个练习项目的一部分,我和一个朋友正在编写脚本,以简化资产管理软件。我们将自动填写必填字段,然后按一下签出(例如电话)所需的所有按钮。 搜索特定设备后,有两个选项: -找到设备并可用,因此可以检出 -找到设备但不可用,因此无法检出
为实现此目的,我们编写了一个if语句,检查“签出”或“签入”,并因此为我们提供了下一个选项。
我们已经尝试了各种使用缩进的方法,颠倒了语句的顺序,...脚本似乎从来没有达到“其他”的地步。当前状态为“签到”时,会显示消息框,要求您重新开始,但是当当前状态为“签出”时,它实际上不会输出“ 5000”。
我们还尝试过使用Elif代替其他内容,并指定:elif browser.find_element_by_xpath('// * [@ title =“检出此项目”]'): 但是即使那样,它实际上也从来没有涉及到其他方面。
if browser.find_element_by_xpath('//*[@title="Check this item in so it is available for re-imaging, re-issue, etc."]'):
print("1")
statusResult = tk.messagebox.askquestion('Device not available', 'Device has been checked out already. Do you wish to start over?', icon='warning')
if statusResult == 'yes':
print("2")
elif statusResult == 'no':
print("3")
else:
print("5000")
状态为“签到”时,需要弹出消息框,要求重新开始(此操作有效)。当状态为“ checkout”时,脚本需要移至else语句并以5000作为示例。
答案 0 :(得分:0)
find_element_by_*
方法不返回布尔值。您不能像示例一样将它们与if语句一起使用。他们将返回WebElement
(如果找到),或者举起selenium.common.exceptions.NoSuchElementException
(如果找不到)。
try:
browser.find_element_by_xpath('//*[@title="Check this item in so it is available for re-imaging, re-issue, etc."]'):
print('found')
except NoSuchElementException:
print('not found')