2017-01-16 2 views
0

このPython/Seleniumスクリプトを実行するとこのエラーが発生します。ここでPython/SeleniumのElementNotVisibleExceptionエラー

File "./a.py", line 21, in <module> 
elem = driver.find_element_by_id("licensees").click() 
    raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.ElementNotVisibleException: Message: 

htmlコードはここ

<p> 
    <button onClick="myloginwindow1('')" value="Login Now" name="licensees" id="licensees"> 

     <p>Licensee Login</p> 

</button> 

</p> 

あるコードです。

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 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Firefox() 
driver.get("https://xxxxx.com") 

assert "xxxxxxxx" in driver.title 

try: 
element = WebDriverWait(driver, 30).until(
    EC.presence_of_element_located((By.ID, "licensees")) 
) 

elem = driver.find_element_by_id("licensees").click() 

finally: 
    driver.quit() 

私はエラーを取得しない

elem = driver.find_element_by_id("licensees").click() 

を削除します。

答えて

0

代わりpresence_of_element_located

presenceOfElementLocatedの使用visibilityOfElementLocatedが見えたりしませ要素は、それだけで他の場所で述べたように要素がページ

try: 
    WebDriverWait(driver, 60).until(EC.visibility_of_element_located((By.ID, "licensees"))).click() 
0

上にあるかどうかをチェックする、存在がより異なっているかどうかを気にしません視認性

しかしcapybara-pyで、あなたはどちらかを考える必要はありません。ここで

from capybara.dsl import page 

page.visit("...") 
page.assert_title("...") 
page.click_button("Licensee Login") 

、ボタンのclick_button()待機が相互作用します。

(同様に、assert_title()はタイトルが一致するのを待っています。たとえば、ページが完全に読み込まれるまでに時間がかかります)

関連する問題