2014-01-16 55 views
-1

試圖在Selenium Python中編寫一個非常簡單的腳本。我使用搜索字符串打開Goog​​le頁面,然後我無法找到任何HTML元素,如任何顯示爲搜索一部分的鏈接的「圖像」,「地圖」等。雖然我使用Firebug。但只有一件事工作,即以下在Google頁面上使用Selenium Python來點擊鏈接

links = driver.find_elements_by_tag_name ("a") 
for link in links: 
    print ("hello") 

做什麼,如果我想點擊「圖像」或「地圖」? 如果我想點擊第一,第二或特定編號的鏈接,或者點擊部分文本鏈接,該怎麼辦?

任何幫助,將不勝感激。

+0

謝謝您的建議! –

回答

0

喜歡的東西:

driver.get('http://www.google.com') 
driver.find_element_by_xpath('//a[starts-with(@href,"https://maps.google")]').click() 

但請注意,您的瀏覽器往往會重定向「http://www.google.com」一個稍微不同的URL,並且該網頁會顯示可能會略有不同。

+0

感謝您的回覆。我對此很新,請告訴我如何獲取/知道地圖鏈接的xpath值?這個命令直接在我的腳本中不起作用。 –

+0

如果您使用的是Firefox:將鼠標指針放在您想知道其Xpath的元素上,右鍵單擊鼠標並選擇「檢查元素」。 –

+0

上面的腳本可能不適合您,因爲Google的網頁在不同的瀏覽器和世界各地的不同位置顯示不同。例如,當我輸入「google.com」時,它會將我的瀏覽器重定向到「google.co.il」,而我甚至沒有「地圖」鏈接。然而,我確實有'圖像'鏈接,並且在我進入搜索之後,網頁稍微改變了,並且'圖像'鏈接出現在頁面內的不同位置,並且具有稍微不同的外觀。底線 - 我不確定我們是否看到完全相同的頁面,因此您必須處理您在瀏覽器上看到的任何內容 –

0

如果我想單擊圖像或地圖,該怎麼辦?

Images: 
    img = driver.find_element_by_css_selector('img#myImage').click() 
Maps: 
    map = driver.find_element_by_css_selector("map[for='myImage']").click() 

1st, second or N link: 
    link = driver.find_elements_by_tag_name('a')[n].click() -- or 
    link = driver.find_elements_by_css_selector("div#someParent > a:nth-child(n)").click() 
+0

感謝您的回覆。它不在我的腳本中工作。實際上,我已經在Google中提供了一些搜索字符串,然後還想點擊地圖或圖片或某個鏈接。你可以解決它嗎? –

相關問題