我试图用Selenium替换TestComplete进行自动化测试,理想情况下无需重新编写所有不同的功能。创建Selenium模块来替换testcomplete
该计划是复制别名结构,用于查找TestComplete中的元素,并使用一个python模块进行查找web元素。
我已经能够得到这个工作的单个页面,但由于Python似乎如何与导入工作,我到目前为止一直无法找到一种方式来导入超越此。
测试完成时的示例代码是。
Aliases.LoginPage.Username.SetText(“用户名”)
要我创建了一个名为别名模块硒复制此,有一个名为LoginPage类,包含了一个名为username属性。
所以Aliases.py看起来象下面这样:
from selenium import webdriver
driver = webdriver.Chrome("C:\\BrowserDrivers\\chromedriver.exe")
class LoginPage:
_username = driver.find_element_by_id("txtUser")
@property
def user(self):
return type(self)._user
,并通过调用:
import Aliases
login_page = Aliases.LoginPage()
login_page.username.send_keys("username")
能正常工作只用一个页面,但是如果我添加第二个类,这个模块与另一个页面上的元素的find_element代码我得到一个“元素未发现异常”
调试显示,这是因为python试图设置所有的类属性在导入Aliases模块时,当然不会找到登录页面上的元素。 即使我在Aliases模块中指定要导入的类,也会发生这种情况。
有没有一种方法可以让我告诉Python只设置正在导入的类的属性 或 另一种方法可以让我构建项目以复制在当前编码测试中找到元素的方式?
另外,我接近这个错误的方式,我应该开始修改当前的代码,我们必须硒是特定的?
原帖是写得很好的,但是,正如这个答案所述,最好重新做工作,而不是试图从'TestComplete'迁移到'Selenium'。另外,对于具体的OP,这**是你的答案。 – Brian
谢谢,这是现在采取的方法。 – lw246