Selenium を使用した自動テストのチュートリアル
トピック
特定の Web サイトのログイン プロセスをテストするには、次の手順に従って実験を実行し、ログ テキストとプロセスのスクリーンショットを実験結果として保存してください。(セレンの8要素とその測位演算プロセスを使用できることが基本要件です)
- Web サイトのホームページ (http://www.eteams.cn/ など) にログインします。
- 右上隅の「ログイン」ボタンをクリックします
- アカウント入力ボックスに事前入力された情報を取得し、印刷します(事前入力された情報が正しいかどうかを判断するために使用されます)
- アカウントとパスワードを入力してください
- 自動ログインのチェックボックスをオンにします (ある場合)
- 「ログイン」ボタンをクリックしてシステムにログインします
- ログイン後のページのタイトル情報を出力(ログイン成功の判定に使用)
- ブラウザを閉じます。
実装アイデア: - まずログイン URL を入力し、WebDriver シミュレーションでログイン ページを開きます。
- 次に、ユーザー名とパスワードを入力するための入力ボックスを見つけます。
- ユーザー名とパスワードの入力をシミュレートします (ユーザー名とパスワードが間違っている可能性があります)。
- ログインするためにクリックするボタンを見つけて、ログインするためにクリックすることをシミュレートして、シミュレートされたログインを実現します。
- WebDriver の [By.xpath] メソッドを使用して Dom 要素を取得します。
- webDriver の各応答操作では、sleep() 関数を使用して時間間隔を追加する必要があります。
一連の考え
まず、最新バージョンの chromedriver.exe ファイルをダウンロードする必要があります (ダウンロード アドレスchromedriver.exe) 。
次に、対応する Web サイトのラベルをどのように選択するかが最も重要です。
たとえば、このログイン ボタンの場合、自動化されたときに正確に見つけられるように、一意のスタイルまたは ID を見つける必要があります。 。
たとえば、この id=top-btn-login と入力し、このコードを記述しますlogin_button = driver.find_element(By.ID, "top-btn-login")
。選択できますが、これは一意である必要があります。
コードの書き方
以下はこの問題を解決するための Python のコードですが、Java などを使用すると様々な依存バージョンの問題に陥って非常に面倒なので、Python で解決することをお勧めします。
操作の結果は、ユーザーの自動操作をシミュレートすることになります。これは、自動テストやクローラーで非常に一般的に使用されます。
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
def main():
# 设置ChromeDriver路径
driver = webdriver.Chrome(executable_path="E:\chromedriver.exe")
# 打开ETeams网站主页
driver.get("http://www.eteams.cn/")
# 通过元素ID查找登录按钮元素,并点击该按钮以打开登录表单
login_button = driver.find_element(By.ID, "top-btn-login")
login_button.click()
time.sleep(2)
# 输入用户名和密码
# 通过XPath查找用户名输入框元素,并输入用户名(将"your_username"替换为实际用户名)
username_input = driver.find_element(By.XPATH, "//input[@type='text' and @class='ui-input']")
username_input.send_keys("your_username")
# 通过XPath查找密码输入框元素,并输入密码(将"your_password"替换为实际密码)
password_input = driver.find_element(By.XPATH, "//input[@type='password' and @class='ui-input']")
password_input.send_keys("your_password")
# 等待2秒以便用户看到已填好的表单
time.sleep(2)
# 点击“登录”按钮
# 通过CSS选择器查找提交/登录按钮,并点击该按钮以完成登录
submit_button = driver.find_element(By.CSS_SELECTOR, "button.ui-btn.ui-btn-primary.ui-btn-middle.ui-btn-inline.weapp-passport-ui-button.weapp-passport-ui-button-md")
submit_button.click()
# 等待5秒以便用户看到已登录页面
time.sleep(5)
# 打印登录后的页面标题
print("已登录页面标题:", driver.title)
# 关闭浏览器
driver.quit()
# 运行主函数
if __name__ == "__main__":
main()