私は要素を見つけようとしています
element=driver.find_element_by_partial_link_text("text")
in Python Seleniumとその要素は常に存在するわけではありません。存在するかどうかを確認し、存在しない場合はエラーメッセージの代わりにNULLまたはFALSEを取得する簡単な行はありますか?
次のようにtry
/except
ブロックを実装して、要素が存在するかどうかを確認できます。
_from Selenium.common.exceptions import NoSuchElementException
try:
element=driver.find_element_by_partial_link_text("text")
except NoSuchElementException:
print("No element found")
_
または、find_elements_...()
メソッドのいずれかで同じことを確認します。空のリストまたは渡されたセレクターと一致した要素のリストを返しますが、要素が見つからない場合の例外はありません:
_elements=driver.find_elements_by_partial_link_text("text")
if not elements:
print("No element found")
else:
element = elements[0]
_
要素が一度に表示されない場合があります。この場合、明示的な待機を使用する必要があります。
browser = webdriver.Chrome()
wait = WebDriverWait(browser, 5)
def is_element_exist(text):
try:
wait.until(EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, text)))
except TimeoutException:
return False
try/ except
なしのソリューション:
def is_element_exist(text):
elements = wait.until(EC.presence_of_all_elements_located((By.PARTIAL_LINK_TEXT, text)))
return None if elements else False
明示的な待機がどのように機能するかは、 here と読むことができます。
輸入:
from Selenium import webdriver
from Selenium.webdriver.support.ui import WebDriverWait
from Selenium.webdriver.common.by import By
from Selenium.webdriver.support import expected_conditions as EC