本文转载自微信公众号「Python技术」,作者派森酱。转载本文请联系Python技术公众号。
成都创新互联公司始终坚持【策划先行,效果至上】的经营理念,通过多达十余年累计超上千家客户的网站建设总结了一套系统有效的营销推广解决方案,现已广泛运用于各行各业的客户,其中包括:iso认证等企业,备受客户赞誉。
上次说到了还有别的方法能找到搜索框吗?答案是当然有了。而且为了满足大部分场景,有很多方法可以定位元素。今天就来继续跟大家一起学习下 Python 如何使用 Selenium 进行自动化操控浏览器。
如果想操作一个网页上面的一个元素,无论点击、输入、拖拽等等任何操作,第一步就是定义元素。因为每个元素对象又包含很多个属性,所以我们就能通过这些属性一项或几项轻松的找到它。
以下是几种常用的定位元素的方法:
这么多的定位方法,基本上就能满足大部分场景的需求了。还有一些其他的方法这里就不再说了。
下面我把这些定位的例子列出来,大家就能知道该如何使用:
- // 导入 webdriver
- from selenium import webdriver
- // executable_path 用于指定driver存放路径
- browser = webdriver.Chrome(executable_path='/Users/xx/python/chromedriver')
- // 打开百度页面
- browser.get('https://wwww.baidu.com/')
- // 在搜索框内输入 `python selenium` 并点搜索返回结果
- browser.find_element_by_id("kw").send_keys("python selenium")
- // name 属性定位
- browser.find_element_by_name("wd").send_keys("python selenium")
- // class name 属性定位
- browser.find_element_by_class_name("s_ipt").send_keys("python selenium")
- // 链接 text 属性定位
- browser.find_element_by_link_text("关于百度").click()
- // tag name 属性定位
- browser.find_element_by_tag_name("input").send_keys("python selenium")
- // CSS 方式定位
- browser.find_element_by_css_selector("#kw").send_keys("python selenium")
- // xpath 方式定位
- browser.find_element_by_xpath("//input[@id='kw']").send_keys("python selenium")
- // 点击 百度一下 按钮
- browser.find_element_by_id("su").click()
元素是定位到了,接下来就是看要如何操作元素对象了
上面我们说了元素是怎么定位找到的,那定位找到元素以后,我们又能对它进行什么操作呢,下面我就来一个个说下:
好了,上面介绍那么多,现在我们来看一个实际的例子:
让浏览器自动输入 https://www.jd.com/,打开京东官网,然后搜索 ps5国行,并把搜索出来商品的名称和金额打印出来。
例子不复杂,我们直接来看代码:
- # 导入库
- from selenium import webdriver
- import time
- # executable_path 用于指定driver存放路径
- browser = webdriver.Chrome(executable_path='/Users/xx/python/chromedriver')
- # 打开京东官网
- browser.get('https://www.jd.com/')
- # browser.find_element_by_id("kw").send_keys("python selenium")
- # 获取输入框对象
- search = browser.find_element_by_xpath('//*[@id="key"]')
- # 输入想要搜索的关键词,如"ps5国行"
- search.send_keys('ps5国行')
- # 获取搜索按钮对象并单击
- browser.find_element_by_xpath('//*[@id="search"]/div/div[2]/button').click()
- # 将滚动条移动到页面底部,用于加载所有信息
- javascript = "var q=document.documentElement.scrollTop=50000"
- # 执行 javascript 移动滚动条
- browser.execute_script(javascript)
- # 等待3秒,有些异步加载的数据加载慢
- time.sleep(3)
- # 通过查看页面源码得到金额的 xpath 路径,并获取金额
- prices = browser.find_elements_by_xpath('//*[@id="J_goodsList"]/ul/li/div/div[2]/strong/i')
- # 通过查看页面源码得到商品标题的 xpath 路径,并获取商品标题
- names = browser.find_elements_by_xpath('//*[@id="J_goodsList"]/ul/li/div/div[3]/a/em')
- # 遍历打印出当前页所有标题和金额
- for name,price in zip(names,prices):
- print(name.text.replace('\n',''),price.text)
- #退出浏览器
- browser.quit()
代码中我已经对每一行做了注释,让大家能看明白每一行都是做什么的。接下来我们直接运行代码 python test.py,可以看到浏览器自动启动后,执行相关操作,然后退出,下面是执行中的截图:
执行完成后,我们可以看到控制台已经打印出来相应信息:
好了,今天我们又介绍了下 selenium 定位元素的多种方法,以及我们找到元素后,可以对它进行什么操作。并写了一个自动化操作的简单例子,给大家学习参考,后续还会为大家介绍更多。
分享名称:这样教都不会?还得我亲自出马!
URL标题:http://www.mswzjz.cn/qtweb/news12/82912.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能