2014-01-16 58 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中提供了一些搜索字符串,然后还想点击地图或图片或某个链接。你可以解决它吗? –

相关问题