我試圖用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