2013-04-24 98 views
0

我甚至不知道如果這是我的問題的解決方案,但我們在這裏。Python與硒2和螢火蟲擴展

所以我試圖找到一個網頁上的鏈接。事情是網頁似乎正在執行一個JavaScript,以獲得實際的HTML代碼。現在這裏是我不確定它真的會落在哪一類的東西。

據我所知,瀏覽器的源代碼通常會在展開JavaScript後顯示所有內容,但對於本網站而言,源代碼不顯示任何網站內容。現在看看網站內容的唯一方法是使用螢火蟲。

我認爲通過使用硒與螢火蟲如下,然後我將能夠使用xpath或東西,但要麼我不明白背後用硒螢火蟲或我用它都錯了。

有人可以幫忙嗎?我一直在努力研究這個。 BTW它是ASPX鏈接,如果有差別

from selenium.webdriver.common.keys import Keys 
fp = webdriver.FirefoxProfile() 
fp.add_extension(extension='firebug-1.11.2-fx.xpi') 
fp.set_preference("extensions.firebug.currentVersion", "1.11.2") 
browser = webdriver.Firefox(firefox_profile=fp) 
browser.get("Example.com/start.aspx") 
try: 
    #elem = browser.find_element_by_xpath("/html/body/div[2]/div[2]/table/tbody/tr/td[3]/a") 
    elem = browser.find_element_by_link_text("SEARCH") 
    elem.send_keys(Keys.RETURN) 

except NoSuchElementException: 
    assert 0, "can't find XPATH or Link Name" 

感謝

+1

的元素出現在沒有螢火蟲的DOM,所以你不需要把它列入。您可能需要等待幾秒鐘才能顯示該元素。 – Blender 2013-04-24 02:08:25

回答

0

其實我發現我的問題。

不顯示整個HTML代碼中的問題,是由於不注重正確的iframe

我不得不這樣做的是通過以下切換到右側的「IFRAME」

瀏覽器.switch_to_frame(「iframe」)

您也不需要爲此使用Firebug擴展。

希望這可以幫助你們遇到類似問題。

的完整代碼會是這樣的:

from selenium.webdriver.common.keys import Keys 
browser = webdriver.Firefox() 
browser.get("Example.com/start.aspx") 
try: 
    #elem = browser.find_element_by_xpath("/html/body/div[2]/div[2]/table/tbody/tr/td[3]/a") 

    browser.switch_to_frame("iframe") 
    elem = browser.find_element_by_link_text("SEARCH") 
    elem.send_keys(Keys.RETURN) 

except NoSuchElementException: 
    assert 0, "can't find XPATH or Link Name" 

問候,