python - Python Selenium“未定义名称'驱动程序'”
问题描述
我正在尝试在 python 上使用 Selenium 登录我的帐户。当我编写没有对象的代码时,它没有问题,但是当我开始实现一个类时,我得到了错误:
name 'driver' not defined
这很奇怪,因为在我收到错误之前,“驱动程序”已经被调用了 1 次。
代码如下所示:
class my_bot:
def __init__(self):
self.driver = webdriver.Safari()
self.driver.get('https://website.com')
def login(self, email, password):
self.email = email
self.password = password
wait = WebDriverWait(self.driver, 10)
fb_btn = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="modal-manager"]/div/div/div/div/div[3]/span/div[2]/button')))
self.driver.execute_script("arguments[0].click()", fb_btn)
sleep(3)
#switch the window
base_window = self.driver.window_handles[0]
self.driver.switch_to_window(driver.window_handles[1])
即使“驱动程序”的调用之前已经发生,我在最后一行得到错误。
有谁知道为什么这不起作用?
解决方案
您可以在切换到新窗口时使用以下代码。它将帮助您在新窗口打开后获取窗口句柄
self.driver.switch_to_window(self.driver.window_handles[1])
推荐阅读
- xamarin - AWS Cognito 电子邮件忘记密码代码几乎立即过期
- ocaml - reasonml 中的 -> 和 |> 有什么区别?
- sql-server - 访问 INFORMATION_SCHEMA 需要哪些权限?
- ios - 每个项目的 CollectionView 分页起点
- python - TensorFlow 2.0:如何控制已保存模型的名称?
- cucumber-jvm - 如何在基于环境的黄瓜场景大纲示例中传递参数?
- c++ - 验证没有字符和负输入的输入
- reactjs - Log4js-node 找不到集群模块
- azure-devops - 如何在 Azure Devops 中显示显示构建指标的仪表板
- swift - UITableview 与单元格两个单元格