2016-06-22 8 views
0

私のselenium pythonコードは、Webページ内のリンクを見つけることができません。私のセレンのpythonコードは、Webページ内のリンクを見つけることができません

  1. 私はself.base_urllogin:passwordを言及していない場合、私はしてもWebページにログインすることはできません(:管理者管理者を参照してください) -

    は、私は次のコードに関連する2つの質問があります。

    このWebページでは、ユーザー名とパスワードのポップアップが表示されます。私は上記のようにログインすることしかできませんでした。

    self.base_urlにユーザーIDとパスワードを記載する必要はありませんか?

  2. ウェブページにログインすると、ウェブページ上のいずれのリンクもクリックできませんでした。私は C:\Python27>python.exe test2.py

ERROR: test_2 (__main__.Test2)

Traceback (most recent call last): 
    File "test2.py", line 22, in test_2 
driver.find_element_by_link_text("Devices").click() 
    File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 282, in find_element_by_link_text 
return self.find_element(by=By.LINK_TEXT, value=link_text) 
    File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 712, in find_element 
{'using': by, 'value': value})['value'] 
    File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 201, in execute 
self.error_handler.check_response(response) 
    File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response 
raise exception_class(message, screen, stacktrace) 
NoSuchElementException: Message: Unable to locate element: {"method":"link text","selector":"Devices"} 
Stacktrace: 
at FirefoxDriver.prototype.findElementInternal_ (file:///c:/users/saurabht/appdata/local/temp/tmpmvm1dg/extensions/[email protected]/components/driver-component.js:10723) 
at fxdriver.Timer.prototype.setTimeout/<.notify (file:///c:/users/saurabht/appdata/local/temp/tmpmvm1dg/extensions/[email protected]/components/driver-component.js:623) 

---------------------------------------------------------------------- 
Ran 1 test in 47.509s 

FAILED (errors=1) 

----------------------------- 

セレンスクリプトを取得していますエラーを参照してください。

# -*- coding: utf-8 -*- 
from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.support.ui import Select 
from selenium.common.exceptions import NoSuchElementException 
from selenium.common.exceptions import NoAlertPresentException 
import unittest, time, re 

class Test2(unittest.TestCase): 
    def setUp(self): 
     self.driver = webdriver.Firefox() 
     self.driver.implicitly_wait(30) 
     self.base_url = "http://admin:[email protected]/acs/" 
     self.verificationErrors = [] 
     self.accept_next_alert = True 

    def test_2(self): 
     driver = self.driver 
     driver.get(self.base_url + "/") 
     time.sleep(15) 
     driver.find_element_by_link_text("Devices").click() 
     time.sleep(5) 
     driver.find_element_by_link_text("364114").click() 


    def is_element_present(self, how, what): 
     try: self.driver.find_element(by=how, value=what) 
     except NoSuchElementException as e: return False 
     return True 

    def is_alert_present(self): 
     try: self.driver.switch_to_alert() 
     except NoAlertPresentException as e: return False 
     return True 

    def close_alert_and_get_its_text(self): 
     try: 
      alert = self.driver.switch_to_alert() 
      alert_text = alert.text 
      if self.accept_next_alert: 
       alert.accept() 
      else: 
       alert.dismiss() 
      return alert_text 
     finally: self.accept_next_alert = True 

    def tearDown(self): 
     self.driver.quit() 
     self.assertEqual([], self.verificationErrors) 

if __name__ == "__main__": 
    unittest.main(exit=False) 
+0

読みやすいように書式が更新されました。 –

答えて

0

Webページがにスローと言うならをポップアップし、Webベースのでポップアップするならば、あなたが最も可能性の高いウィンドウを切り替える必要があるだろう。フォーカスは主なWebページにはなく、その中に要素を見つけることができないという理由があります。窓を切り替える方法を見てくださいhere。お役に立てれば。

+0

私はスイッチフレームを試してみましたが、成功しませんでした。しかし、これは既に私がself.base_url = "http:// admin:[email protected]/acs/"を使って扱っていた問題です。私の主な関心事は、私がログインした後、私はウェブページ上の要素を見つけることができなかったということです。 – Monu

関連する問題