中国建设报官方网站免费培训课程
一、前言
本章主要实现 【之前CMA船司物流信息查询】的遗留问题
解决思路
由于CMA船司查询需要进行[机器人验证]
方法1:直接从前端跳过,用selenium实现前端自动化,查询物流信息
方法2:捕捉到接口search,但需要将返回的前端页面进行解析,并提取出你需要的相关物流信息;
其他船司查询详细请看上篇blog.
二、代码实现
- 我这里就直接用selenium进行UI自动化查询
- 注意:需要提前下载和你浏览器相匹配版本的chormedrive,并将他放到python目录下(关于这part 我就不写了)
- 下载地址: https://chromedriver.storage.googleapis.com/index.html
import time
from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsclass TestCmatest():def setup_method(self):"""启动google浏览器:return:"""chrome_options = Options()chrome_options.add_experimental_option("detach", True) # 防止浏览器自动关闭self.driver = webdriver.Chrome(options=chrome_options)# def teardown_method(self, method):# self.driver.quit()def test_cmatest(self, bill_number):"""ui自动根据提单号查询:param bill_number::return:"""self.driver.get("https://www.cma-cgm.com/ebusiness/tracking")time.sleep(1)self.driver.find_element(By.ID, "Reference").click()time.sleep(1)self.driver.find_element(By.ID, "Reference").send_keys(bill_number)time.sleep(1)self.driver.find_element(By.ID, "btnTracking").click()time.sleep(1)# self.driver.execute_script("window.scrollTo(0,617)")t = TestCmatest()
t.setup_method()
bill_number = "CAN0870714"
t.test_cmatest(bill_number)