翼度科技»论坛 编程开发 python 查看内容

电商网站Web自动化测试实战( 编写京东搜索脚本python+selenium框架)

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
电商网站Web自动化测试实战( 编写京东搜索脚本)
1,打开京东页
京东首页地址:https://www.jd.com/,故进入京东首页如下:

2,打开浏览器开发者模式
定位元素前需先打开浏览器开发者模式,查看页面源码
例-打开chrome开发者模式:
  windows:快捷键F12
  Mac ios :快捷键option+command+i

3,元素定位
元素定位方法可参考:https://www.cnblogs.com/mini-monkey/p/12074940.html
一般元素id存在时,先根据id定位,其次是class、name属性,然后再是xpath、css等去定位。优先级不一定是这样的,小编一般习惯这样定位,大家可以根据实际情况选择合适的定位方式。(当一种方法无法定位到元素时,可尝试其他方法进行定位)
京东搜索商品加车过程如下:
首页点击搜索框->输入搜索关键词,点击搜索btn->点击商品(进入商详页)->点击“加入购物车”加车
实现搜索加车自动化操作可根据以上步骤展开编写,京东搜索商品加车脚本如下(以搜索“微波炉”为例):


备注:由于页面加载需要一定时间,可在需要等待的地方添加等待时间。
实例代码详情
京东搜索加车总代码如下:
  1. from selenium import webdriver
  2. from time import sleep
  3. from selenium.webdriver.common.by import By
  4. import unittest
  5. # 访问浏览器
  6. driver=webdriver.Firefox()
  7. # 把浏览器最大化
  8. driver.maximize_window()
  9. # 智能等待 等待的时间是0-6秒
  10. driver.implicitly_wait(6)
  11. #访问百度首页
  12. driver.get("https://www.baidu.com")
  13. sleep(3)
  14. print("百度首页句柄:",driver.current_window_handle)
  15. print("百度首页标题:",driver.title)
  16. # 访问京东网站
  17. driver.get("https://www.jd.com")
  18. # 搜索输入框
  19. search_ele = driver.find_element(By.ID, 'key')
  20. # 输入关键字-微波炉
  21. search_ele.send_keys("微波炉")
  22. # 点击搜索btn
  23. button = driver.find_element(By.CLASS_NAME,"button").click()
  24. sleep(1)
  25. # 滑动至商品可见
  26. # driver.execute_script("window.scrollBy(0,600)")
  27. driver.find_element(by=By.XPATH,value="/html/body/div[5]/div[2]/div[2]/div[1]/div/div[2]/ul/li[1]").click()
  28. sleep(3)
  29. # 点击第一个商品-进入商详页:
  30. ele=driver.find_element(by=By.XPATH,value="/html/body/div[5]/div[2]/div[2]/div[1]/div/div[2]/ul/li[1]/div/div[1]/a/img")
  31. ele.click()
  32. windows = driver.window_handles
  33. # 切换至商详窗口
  34. driver.switch_to.window(windows[-1])
  35. # 向下滑动500个像素
  36. driver.execute_script("window.scrollTo(0,500)")
  37. # 点击加入购物车
  38. driver.find_element(By.ID,"InitCartUrl").click()
复制代码

  • (滑动至商品可见)与(点击第一个商品-进入商详页)的解决方案
  1. driver.find_element(BY.xxx,yyyy).click()
  2. 分2步写:
  3. ele=driver.find_element(BY.xxx,yyyy)
  4. ele.click()
复制代码
来源:https://www.cnblogs.com/kasia/p/17118189.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具