python-3.x - 启用检查按钮时无法执行 if else 语句代码
问题描述
单击申请工作后,我正在尝试检查 Indeed.com 上的按钮,但我的代码似乎不起作用。第一个 if 检查是否启用了继续按钮,如果没有,则会关闭页面,切换到主窗口并申请下一个工作。if语句中的if else检查是否有另一个继续按钮,如果没有单击应用按钮完成并关闭页面然后切换到主窗口,它将关闭页面并切换到主窗口。
对不起,我还不能发布图片,所以我必须链接它们。
这是您点击申请工作后的图片 https://imgur.com/FzITw8q
如果有另一个继续按钮 https://imgur.com/iJMFqp8 ,这是图片
如果没有继续按钮,只有应用按钮,这是图片https://imgur.com/62KMUwY
# 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() 但它根本不起作用。
解决方案
首先,我想知道您如何在 WebDriverWait 上调用 isEnabled()。这只会等待一个元素,直到它被定位并且不会返回它的 WebElement。因此,当您在第 1、2 和 3 行启用应用时,它会引发错误。首先将该元素分配给一个变量,然后在 WebDriverWait 中调用该变量。一旦元素被定位/等待直到被 WebDriverWait 定位的元素,使用 click 或使用变量而不是 WebDriverWait 启用方法。
推荐阅读
- html - 在桌面上强制移动视图
- swift - 你如何将对象数组保存到领域,斯威夫特?
- python - 使用 Twisted 记录器时可以延迟日志文件的轮换吗?
- asp.net-core - 如何在 MVC 核心视图中将当前选择值传递给路由 id
- shopify - 当 .btn 仅定义类时,Shopify 将 .text-link 类添加到按钮
- data-structures - 链表中的相邻节点交换但在输出 1 节点丢失
- angular - Angular 应用程序无法解析 main.ts、polyfile.test 和 style.css
- c# - 网页部署稳定性
- jquery - jQuery load() a href 链接加载到 div 不与我的函数交互,但该函数在初始页面上工作
- c# - WPF 组合框显示来自数据库的默认值