web-dev-qa-db-ja.com

Selenium 2を使用してWebページにテキストが存在するかどうかを確認するにはどうすればよいですか?

こんにちは私はSeleniumを使用してWebページのテストを自動化しています。私はSelenium 2とpythonを使用しており、このフレームワークでのみ回答を得たいと考えています。SOテキストが存在するかどうかを確認するにはどうすればよいですか?I等しい資産を試しましたが、機能しませんか?

assertEquals(driver.getPageSource().contains("email"), true);
16
grv

driver.page_sourceと単純な正規表現を使用して、テキストが存在するかどうかを確認できます。

import re    
src = driver.page_source
text_found = re.search(r'text_to_search', src)
self.assertNotEqual(text_found, None)
20
limlim

まだ興味がある方のために:

一般的なソリューション

if (text in driver.page_source):
     # text exists in page

nittest

assertTrue (text in driver.page_source)

pytest

assert (text in driver.page_source) 
16
ChickenFeet

あなたは次のようなことを試すことができます

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

4
boon kwee