简介

一直没有弄 ATX 的 WebView 支持,最近正好需要用到。借助已有的 chromedriver 以及 selenium,写起来还挺简单的,一天弄完了。

安装

官方的下载地址是 https://sites.google.com/a/chromium.org/chromedriver/downloads 但是打开之后发现下载不到历史版本。
从这里就可以找到 https://chromedriver.storage.googleapis.com/ 这个网页打开是一个 xml

里面的 Key 对应的就是文件的路径,比如2.0/chromedriver_linux32.zip
访问这个地址https://chromedriver.storage.googleapis.com/2.0/chromedriver_linux32.zip 就可以下载到对应的文件了。

chromedriver 的版本选择

版本太高太低都不行。

不同 chromedriver 对应的 chrome 版本

通过访问 chrome://inspect 可以查到当前 App 使用的 WebView 版本

不同版本应该使用的 chromedriver 版本对应关系可以从这里看到 appium-chromedriver/chromedriver.js

上图的这种情况下使用该版本的 chromedriver 就可以

手动安装额外的依赖库

pip install selenium

使用

import atx
from atx.ext.chromedriver import ChromeDriver

def main():
    d = atx.connect()
    driver = ChromeDriver(d).driver()
    driver.find_element_by_xpath('//*[@id="J-account-login-mp"]').send_keys(username)
    driver.find_element_by_xpath('//*[@id="J-account-login-pwd"]').send_keys(password)
    driver.find_element_by_xpath('//*[@id="J-login-submit"]').click()
    driver.quit()

main()

更多的 selenium 文档需要参考 http://selenium-python.readthedocs.io/getting-started.html

已知问题

Chrome 开 inspect 的时候不能和 python 代码同时运行。


↙↙↙阅读原文可查看相关链接,并与作者交流