我们可使用Selenium进行Web自动化操作。
一、环境搭建:
1.下载安装Pycharm
2.在Pycharm中新建项目
3.在Pycharm中安装Selenium(FIle->Settings->Project:项目名->Python Interpreter->加号->搜索添加Selenium)
4.下载符合浏览器版本的chromedriver.exe
·114之前chromedriver驱动版本:淘宝镜像
· 115以后chromedriver驱动版本:国内镜像
5.将chromedriver.exe放在项目中
6.编写初始化代码,运行
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
s = Service("chromedriver.exe")
browser = webdriver.Chrome(service=s)
browser.get("http://www.gushiwen.cn")
time.sleep(10)
二、元素定位
使用find_element或find_elements函数。
1.通过ID
2.通过CLASS_NAME
3.通过TAG_NAME
4.通过CSS_SELECTOR
5.通过XPATH
6.通过LINK_TEXT
7.通过NAME
使用示例如下:
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
s = Service("chromedriver.exe")
browser = webdriver.Chrome(service=s)
browser.get("http://www.gushiwen.cn")
input = browser.find_element(By.ID,"txtKey")
input.send_keys("李白")
inputBtn = browser.find_element(By.CSS_SELECTOR,"#search > form > input[type=submit]:nth-child(3)")
inputBtn.click()
time.sleep(10)
三、获取元素信息
1.xx.text
2.xx.get_attribute("yy")
3.xx.tag_name
使用示例如下:
btn = browser.find_element(By.LINK_TEXT,"古籍")
print(btn.get_attribute("href"))
四、与页面交互
1.xx.click()
2.xx.send_keys(yy)
3.browser.execute_script(js)
4.browser.back()
5.browser.refresh()
6.browser.quit()
使用示例如下:
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
s = Service("chromedriver.exe")
browser = webdriver.Chrome(service=s)
browser.get("http://www.gushiwen.cn")
time.sleep(8)
browser.refresh()
time.sleep(5)
input = browser.find_element(By.ID,"txtKey")
input.send_keys("李白")
inputBtn = browser.find_element(By.CSS_SELECTOR,"#search > form > input[type=submit]:nth-child(3)")
inputBtn.click()
js = "document.documentElement.scrollTop = '10000'"
browser.execute_script(js)
time.sleep(5)
browser.back()
time.sleep(5)
browser.quit()
time.sleep(5)
五、与IPA工具交互
需要在项目目录加上chromedriver.exe,注意填写入参和出参。
代码示例如下:
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
s = Service("chromedriver.exe")
browser = webdriver.Chrome(service=s)
browser.get("http://www.gushiwen.cn")
input_field = browser.find_element(By.ID,"txtKey")
input_field.send_keys(input_val)
inputBtn = browser.find_element(By.CSS_SELECTOR,"#search > form > input[type=submit]:nth-child(3)")
inputBtn.click()
res = browser.find_element(By.CSS_SELECTOR,"body > div.main3 > div.left > div.sonspic > div.cont > p:nth-child(3)")
output_val = res.text
time.sleep(5)
六、无界面操作
代码示例如下:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless")
options.add_argument("--disable-gpu") #减少BUG
options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
browser = webdriver.Chrome(options=options)
browser.get("http://www.gushiwen.cn")
browser.save_screenshot("gushiwen.png")
ps:在处理文件路径时,r前缀很有用。它可以确保路径中的反斜杠在字符串中保持不变,而不会被解释为转义字符。这在处理Windows文件路径时尤其有用。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】