【发布时间】:2018-07-13 22:09:52
【问题描述】:
尝试使用 selenium 和 python 实现页面对象模型实践,但 chrome 实例未启动。谁能指出我正确的方向?我期待 Chrome 启动并填写登录表单。
这是控制台当前正在吐出的内容:进程以退出代码 0 完成。以及 Login_test 方法上的“未解决的引用 'Login'”错误。
在登录下也有一条红线。在尝试在 test_login 方法中使用它时。
这就是我的文件的设置方式。我在不同的文件夹中有 2 个 python 文件。这两个文件夹都在一个项目文件夹中。
页面/login_page.py
测试/login_test.py
#login_page.py file
> from selenium.webdriver.common.by import By
class Login:
_username_input = {"by": By.NAME, "value": "username"}
_password_input = {"by": By.NAME, "value": "password"}
_submit_button = {"by": By.ID, "value": "btn-inloggen"}
_success_message = {"by": By.CSS_SELECTOR, "value": ".#header > div.right > a:nth-child(4)"}
def __init__(self, driver):
self.driver = driver
self.driver.get("website")
def with_(self, username, password):
self.driver.find_element(self._username_input["by"],
self._username_input["value"]).send_keys(username)
self.driver.find_element(self._password_input["by"],
self._password_input["value"]).send_keys(password)
self.driver.find_element(self._submit_button["by"],
self._submit_button["value"]).click()
def login_succesfull_(self):
return self.driver.find_element(self._success_message["by"],
self._success_message["value"]).is_displayed()<
#test_login.py file
from selenium import webdriver
from Pages import login_page
class TestLogin:
def login(self, request):
driver = webdriver.Chrome()
def quit():
driver.quit()
request.addfinalizer(quit)
return login_page.Login(driver)
def test_login(self):
Login.with_("username", "password")
assert Login.login_succesfull_()
【问题讨论】:
-
欢迎来到 Stack Overflow。如果您提出具体问题并提供更多详细信息,我们可以为您提供帮助。运行代码时会发生什么?你想让它做什么不同的事情?
-
Chrome 需要启动并填写登录表单。目前控制台正在吐出:进程以退出代码0完成。登录下还有一条红线。在 test_login 函数中使用它。
-
将鼠标悬停在
Login上。它说什么错误? -
未解决的参考“登录”
-
哪一行给出了错误?
标签: python selenium object pom.xml models