背景

某家公司的弱智同事要求我在git上自动提交MR,现在问题是本地分支推送到库上创建一个新的分支之后,会进入到一个中间界面,在这里可以选择目标分支,选择某个智障同事为你审核,这些都确认无误之后(比如:自己的分支确实要提交到master上,这个同事也确实是个智障),点击“Create Merge Request”就可成功提交,这篇博客就是为了实现登录Gitlab和点击按键这一系列操作

【注】本文基于Windows操作,Linux系统的我去问过这位技(sha)术(bi)大(tong)牛(shi),她说太简单了网上随便搜一搜就有,没必要专门请教她

直接上代码

from selenium import webdriver
from selenium.webdriver.common.by import By

def auto_click():

    options = webdriver.ChromeOptions()
    options.binary_location = r'C:\Users\Ying.Yang\AppData\Local\Chromium\Application\Chromium.exe'
    browser = webdriver.Chrome(chrome_options=options)
    browser.get('http://code.YangYingisSB.com/nn-compiler/tensorturbo/-/merge_requests/new?merge_request%5Bsource_branch%5D=auto_click')
    # browser.get('http://code.YangYingisSB.com/users/sign_in')
    time.sleep(2)

    username = browser.find_element(By.ID, 'username')
    username.send_keys('Ying.Yang')
    password = browser.find_element(By.ID, 'password')
    password.send_keys('YangYingisSB')
    time.sleep(1)
    sign_in = browser.find_element(By.NAME, 'commit')
    sign_in.click()

    button = browser.find_element(By.NAME, 'commit')
    button.click()

1、import模块

第一个import webdriver就是浏览器的驱动,一般都选用谷歌浏览器,最好自己下一个,网址我贴在这了

1)在浏览器中输入 chrome://version 查看浏览器版本

2)在谷歌驱动下载仓找到对应版本的驱动下载一个,放到你本地谷歌浏览器安装位置的同路径下(追更的时候我发现得装在Python路径下面,都可以试试)

第二个 import By 就是下面会用到的一种检索方法,因为这个方法有更新,以前是直接browser.find_element_by_id就可以,反正按照最新的来就行了

【2023/09/06追更】

时隔一年我又准备试一下这个操作(好在我已经离职了,远离了YangYingisSB这个git仓),结果代码调试的时候发现了这个错误“selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for chrome using Selenium Manager”,现在已经成功解决了,说一下解决办法

  1. 找一下你的Python在哪里,简单点可以直接打开Pycharm的Terminal,输入where python,就能找到你这个工程正在使用的Python出自哪里,like this↓
  2. 把chromedriver.exe塞到上面这个路径下,like this↓
  3. 然后打开环境变量的配置(Windows现在什么都能直接搜索了,方便快捷),然后把这个chromedriver.exe的路径加进去,like these↓

然后直接输入下面这一段代码就能直接访问百度了,现在教程的迭代都得与时俱进啊

from selenium import webdriver

def whatever()
    driver = webdriver.Chrome()
    driver.get('https://www.baidu.com')
    driver.quit()

2、options.binary_location

这里填写你本地谷歌浏览器的安装路径就行,注意要到Chrome.exe这一层

3、browser.get

就是你需要访问的浏览器地址填上就行了,可以是gitlab也可以是某购物网站,或者你想登录的任何网站,这里以YangYingisSB这个git仓为例

4、browser.find_element

这里按一下F12,或者在你想要的图标上“右键-检查”就能看到

在右边的代码块里找你想要的元素就行了,用name,id什么的作为索引都可以,保证唯一性即可

 5、button.click()

最后就是按钮的点击了,其实就是先定义按钮变量,也就是你在页面上索引到的某个元素,然后调用click这个方法点一下就行了

总结

实现的代码段多写总结,远离这种智障同事,干什么都叫你自己上网查

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐