Python 基本用法

187 阅读2分钟

Python 简介

Python由荷兰数学计算机科学研究学会的吉多·范罗苏姆 于1990 年代初设计,作为一门叫做ABC语言的替代品。 [1]  Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言, [2]  随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

Python语法

输出和输入:

  • 输出:print()
  • 输入send_Keys()

查找页面元素

  • self.driver.find_element
  • By.XPATH

python产生随机数

  • 随机产生x---y随机数random.randint(x,y)
  • 随机产生x---y随机浮点数random.uniform(x, y)
  • 随机生成一个大写或小写的英文字母random.choice(string.ascii_letters)
  • 随机从ls数组中选2个元素 ls = ["aaa", 1, 'class', 'createrandomsamplesfromlist', 9990] print(random.choice(ls))

控制滑块速度

from retrying import retry
def get_track(distance, t):  # distance为传入的总距离,a为加速度
    track = []
    current = 0
    mid = distance * t / (t + 1)
    v = 0
    while current < distance:
        if current < mid:
            a = 3
        else:
            a = -1
        v0 = v
        v = v0 + a * t
        move = v0 * t + 1 / 2 * a * t * t
        current += move
        track.append(round(move))
    return track


  def move_to_gap(self, slider, tracks):  # slider是要移动的滑块,tracks是要传入的移动轨迹
       ActionChains(self.browser).click_and_hold(slider).perform()
       for x in tracks:
           ActionChains(self.browser).move_by_offset(xoffset=x, yoffset=0).perform()
       ActionChains(self.browser).release().perform()
	
	
  def login(self, username, password):
  		time1 = [3, 4, 5, 6, 2.1, 2.7, 2.8, 2.9, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7,
                     3.8, 3.9, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5.0, 5.1, 5.2]
        t1 = random.choice(time1)
		slider = self.browser.find_element_by_xpath("//span[contains(@class, 'btn_slide')]")    
        if slider.is_displayed():
           self.move_to_gap(slider, get_track(360, t1))

导入其他pthon文件

  • import

python 声明方法需要传入参数

  • self

网页字体改为中文

  • self.fake = Factory().create('zh_CN')

隐藏界面执行

+# self.chrome_options.add_argument('--headless')

截图

from PIL import ImageGrab

im = ImageGrab.grab(bbox=(370,500,680,550))

im.save('imgs/1.png')

滑块的操作

  • 按住不动 ActionChains(self.driver).click_and_hold(self.driver.find_element(By.XPATH, '//*[@id="emailReg"]/div/div[3]')).perform()

  • 滑动指定距离 ActionChains(self.driver).move_by_offset(xoffset=result, yoffset=0).perform()

  • 松开滑块 ActionChains(self.driver).release().perform()