我想测试任何给定网页的页脚部分中的所有链接。
前:
from selenium import webdriver
import requests
chrome_path = "/Users/tanmaykale/Downloads/chromedriver"
driver = webdriver.Chrome(chrome_path)
# -----------Getting footer content of apple.com------------
driver.get("http://www.apple.com")
footer = driver.find_element_by_tag_name('footer')
print footer
elems = footer.find_element_by_tag_name('div')
linkscount = len(elems)
print "Total No of link in footer of www.apple.com are : ",linkscount
程序应该返回页脚部分中的所有4个链接。 我提前感谢所有给予的帮助。
这是我尝试过的代码:
{{1}}
代码返回以下内容:
linkscount = len(elems) TypeError:'WebElement'类型的对象没有len()
答案 0 :(得分:1)
我猜您对 find_element_by_tag_name 和 find_elements_by_tag_name 方法感到困惑。
Find_element_by_tag_name 只返回选择中的一个元素(通常是第一个元素),而 find_elements_by_tag_name 返回页面/选择中可用的所有元素的列表。
更改下面的任何一个都可以解决问题。
links = footer.find_elements_by_tag_name('a')
links = footer.find_elements_by_css_selector('a')
links = footer.find_elements_by.xpath('.//a')