2017-02-21 8 views
0
C:\apache-tomcat-8.0.27>python 
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit  (
Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from selenium import webdriver 
>>> webdriver.__version__ 
'3.0.2' 
>>> 

次のようにセレンのpythonテストコード:なぜセレンコードはデバッグモードでのみ正常に実行されますが、実行モードでは失敗しますか?

driver.get("http://localhost:8080/") 
self.assertEqual("Cubiender", driver.title) 
driver.find_element_by_id("login_email").clear() 
driver.find_element_by_id("login_email").send_keys("[email protected]") 
driver.find_element_by_id("login_pwd").clear() 
driver.find_element_by_id("login_pwd").send_keys("pass") 
driver.find_element_by_css_selector("input[type=\"submit\"]").click() 

driver.find_element_by_link_text('Project List') 
sleep(0.05) 
driver.find_element_by_xpath("//input[@value='2588']").click() 

sleep(0.05) 
driver.find_element_by_css_selector("div.menu > #inquireProject").click() 

driver.find_element_by_xpath( "//入力で動作しているときに、デバッグモードで正常に実行することができますが、失敗します上記のコード[@value = '2588'] ")(クリック)

でも私は睡眠

スタックトレースを追加しました:。

C:\Python27\python.exe "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.3.2\helpers\pycharm\utrunner.py" F:\python\sub_proj2.py true 

テストは、10:53に開始...

Error 
Traceback (most recent call last): 
File "F:\python\sub_proj2.py", line 41, in test_untitled 
driver.find_element_by_css_selector("span.triangle").click() 
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 437, in find_element_by_css_selector 
return self.find_element(by=By.CSS_SELECTOR, value=css_selector) 
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 752, in find_element 
'value': value})['value'] 
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute 
self.error_handler.check_response(response) 
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response 
raise exception_class(message, screen, stacktrace) 

はNoSuchElementException:メッセージ:要素を見つけることができません:span.triangle

プロセスはおそらくである終了コード0

+0

睡眠が要素をクリックする前にそこにある理由、タイミングの問題のような音?その入力はどのように設定されていますか? – Corporalis

+0

例外は何に投げられますか?スタックトレース? –

+0

'sleep()'の中で待ち時間を増やしたり、 '明示的待ち'を使用してみてください –

答えて

0

で仕上げデバッグモードでは、要素を見つけるのに時間がかかります。要素がロードされていることを確認するためにスリープ時間やその他の解決策を増やしてください。

2

stacktraceを共有してください。それはそう私に

  • あなたvalue='2588は、ダイナミック一つであり、すべてのインスタンスの負荷を変更することのどちらか。
  • sleepがプロセス全体を停止させることがあります。下記の例のように、waitを使用してください。

from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10) 
element = wait.until(EC.element_to_be_clickable((By.ID,'someid'))) 
関連する問題