こんにちは私はSeleniumを使用してWebページのテストを自動化しています。私はSelenium 2とpythonを使用しており、このフレームワークでのみ回答を得たいと考えています。SOテキストが存在するかどうかを確認するにはどうすればよいですか?I等しい資産を試しましたが、機能しませんか?
assertEquals(driver.getPageSource().contains("email"), true);
driver.page_source
と単純な正規表現を使用して、テキストが存在するかどうかを確認できます。
import re
src = driver.page_source
text_found = re.search(r'text_to_search', src)
self.assertNotEqual(text_found, None)
まだ興味がある方のために:
一般的なソリューション
if (text in driver.page_source):
# text exists in page
nittest:
assertTrue (text in driver.page_source)
pytest:
assert (text in driver.page_source)
あなたは次のようなことを試すことができます
browser = webdriver.Firefox()
browser.get(url)
WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.LINK_TEXT, 'some link text')))
基本的に上記の行は、Firefoxを起動し、指定されたURLに移動し、ブラウザーを10秒間保持し、一部のURLをロードして特定のリンクテキストを探します。リンクテキストが見つからない場合は、TimeoutExceptionがトリガーされます。
使用するブラケットの数に注意してください。ブラケットの数が上記のように一致しない場合、エラーが発生します。
上記のステートメントを実行できるようにするには、以下が宣言されている必要があります
from Selenium import webdriver
from Selenium.webdriver.common.by import By
from Selenium.webdriver.support.ui import WebDriverWait
from Selenium.webdriver.support import expected_conditions as EC
これは「element_to_be_clickable」を使用します-待機条件の完全なリストはここにあります: Selenium Python:Waits