私は自動テストのためにTestCompleteをSeleniumに置き換えようとしています。理想的には、すべての異なる関数を書き直す必要はありません。testcompleteを置き換えるためのSeleniumモジュールの作成
Web要素の検索を行うためにドロップ可能なPythonモジュールで、TestComplete内の要素を検索するためのエイリアス構造を複製する予定です。
私はこれを単一のページで動作させることができましたが、これまでにインポートでPythonがどのように動作するようになったかで、これまで以上にインポートする方法を見つけることができませんでした。
テスト完了のサンプルコードは次のとおりです。
Aliases.LoginPage.Username.SetText(「ユーザ名」)
私は、ユーザー名と呼ばれるプロパティを含む、LoginPageというクラスで、エイリアスと呼ばれるモジュールを作成したセレンでこれを複製します。
ので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
とによって呼び出されます。これは私がこのモジュールに2つ目のクラスを追加しかし場合は、1ページだけで正常に動作します
import Aliases
login_page = Aliases.LoginPage()
login_page.username.send_keys("username")
別のページの要素のfind_elementコードで "要素が見つかりません"例外が発生する
デバッグでは、これはPythonがすべてのクラスプロパティを設定しようとしていることを示していますエイリアスモジュールをインポートすると、ログインページにない要素が見つからないことになります。 これは、インポートするエイリアスモジュール内でクラスを指定した場合でも発生します。
私は、インポートするクラスのプロパティを設定するようにPythonに指示する方法はありますか または 私は現在のコード化されたテスト内で見つかっている方法の要素を複製するためにプロジェクトを構造化する別の方法はありますか?
また、私はこれを間違った方法で近づけていますが、現在のコードを修正する必要があります。私たちはセレンの特定でなければなりませんか?
元の投稿はよく書かれていましたが、この回答によれば、 'TestComplete'から' Selenium'に移行しようとするのではなく、単に仕事をやり直すのが最もよいでしょう。また、特にOPには、** **あなたの答えです。 – Brian
ありがとう、これは今取られているアプローチです。 – lw246