如果启用了检查按钮,则无法执行else语句代码

时间:2019-06-13 06:08:11

标签: python-3.x selenium selenium-webdriver

在我单击“申请工作”后,我正在尝试检查确实网站上的按钮,但是我的代码似乎不起作用。 首先检查是否启用了继续按钮,然后它将关闭页面,切换到主窗口并申请下一个作业。如果在if语句中使用if else来检查是否还有另一个继续按钮,它将关闭页面并切换到主窗口;如果不单击“应用”按钮来完成并关闭页面,然后切换到主窗口。

对不起,我还不能发布图片,所以我必须链接它们。

这是您点击应聘职位后的图片 https://imgur.com/FzITw8q

这里是图片,如果还有另一个继续按钮 https://imgur.com/iJMFqp8

如果没有继续按钮,仅应用按钮https://imgur.com/62KMUwY

,则为图片

最后一个https://imgur.com/ls4mwEi

# Click on continue button if there any             
if WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH,'//*[@id="form-action-continue"]'))).is_enabled():
    WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH,'//*[@id="form-action-continue"]'))).click()
    if WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH,'//*[@id="form-action-continue"]'))).is_enabled():
        self.driver.close()
        self.driver.switch_to.window(main) 
    else:
        WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH,'//*[@id="form-action-submit"]'))).click()
        self.driver.close()
        self.driver.switch_to.window(main) 
#If no button close the window and switch to main window
else: 
    self.driver.close()
    self.driver.switch_to.window(main)

我也尝试过is_displayed(),但是根本不起作用。

1 个答案:

答案 0 :(得分:0)

首先,我想知道您如何在WebDriverWait上调用isEnabled()。这将只等待一个元素,直到找到它,并且不会返回其WebElement。因此,在第1、2和3行启用了Apply时,将引发错误。 首先将该元素分配给一个变量,然后在WebDriverWait中调用该变量。找到/等待元素直到由WebDriverWait定位到元素之后,请使用click或启用方法,该方法使用变量而不是WebDriverWait。