- Abstract
- 实例
- 准备知识
- 完整流程
- Conclusion
- 获取网页某个元素
- 输入内容
- 鼠标点击
- 键盘某个键输入
- 其它
- 打开网站,并且输入账号密码,点击登录
- 点击精选,进入搜索界面,搜索火焰杯测试商品,点击搜索的结果
- 点击加入购物车(两次)
from selenium import webdriver
driver = webdriver.Chrome()#可以换成自己喜欢的浏览器
- 打开网站
driver.get("http://litemall.hogwarts.ceshiren.com/vue/index.html#/login")
-
获取某个元素
可以通过id、name、xpath等获取元素,如下图
-
获取元素的路径
打开页面,打开开发者模式(F12),选择元素,右键,copy,选择你要copy的选项
-
获取账号、密码输入框,并且填入
user_name = "name"
password = “password"
driver.find_element_by_xpath("/html/body/div/div[2]/div[2]/div[1]/div[1]/input").send_keys(user_name)# 这里填入的是元素的xpath路径
driver.find_element_by_xpath("/html/body/div/div[2]/div[2]/div[2]/div[1]/input").send_keys(password)
- 点击登录按钮
driver.find_element_by_xpath("//*[@id='app']/div[2]/div[2]/button").click()
- 页面更新后最好等待一段时间,不然获取不到正确的元素
time.sleep(1)#等待1s
- 输入中文,并回车搜索
需要设置编码格式
s1 = unicode("火焰杯测试商品", 'utf-8')
driver.find_element_by_xpath("/html/body/div/div[2]/form/div/div/div/div[2]/div/input").send_keys(s1)
driver.find_element_by_xpath("/html/body/div/div[2]/form/div/div/div/div[2]/div/input").send_keys(Keys.ENTER)
完整流程
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
def solve():
driver = webdriver.Chrome()
driver.get("http://litemall.hogwarts.ceshiren.com/vue/index.html#/login")
user_name = "user123"
password = "user123"
driver.find_element_by_
driver.find_element_by_xpath("/html/body/div/div[2]/div[2]/div[1]/div[1]/input").send_keys(user_name)
driver.find_element_by_xpath("/html/body/div/div[2]/div[2]/div[2]/div[1]/input").send_keys(password)
driver.find_element_by_xpath("//*[@id='app']/div[2]/div[2]/button").click()
time.sleep(1)
# driver.switch_to.frame("right")#切换窗口
driver.find_element_by_xpath("/html/body/div/div[3]/div[1]").click()
time.sleep(1)
s1 = unicode("火焰杯测试商品", 'utf-8')
driver.find_element_by_xpath("/html/body/div/div[2]/div[1]/div[1]/div/div/div[2]/div/input").click()
time.sleep(1)
driver.find_element_by_xpath("/html/body/div/div[2]/form/div/div/div/div[2]/div/input").send_keys(s1)
driver.find_element_by_xpath("/html/body/div/div[2]/form/div/div/div/div[2]/div/input").send_keys(Keys.ENTER)
time.sleep(1)
driver.find_element_by_xpath("/html/body/div/div[2]/div[2]").click()
time.sleep(1)
driver.find_element_by_xpath("/html/body/div/div[2]/div[5]/button[1]").click()
time.sleep(1)
driver.find_element_by_xpath("/html/body/div/div[2]/div[3]/div[3]/div[3]/button[1]").click()
time.sleep(10)
# element.close()
if __name__ == '__main__':
solve()
Conclusion
- 页面元素改变(更新,新页面)需要等待一段时间,才能获取到新页面的元素
- 填入中文时需要设置编码格式
- 获取元素路径,在开发者模式下,右键需要定位的元素,然后复制所需要复制的内容
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)