Selenium模块的有趣应用场景


Selenium在web游戏中的简单应用

  1. 环境准备:

  2. 1 安装selenium
    pip install selenium (#Dos mode)

  3. 代码实现

    url = r'https://gabrielecirulli.github.io/2048/'
    import webbrowser, time, sys, os
    # webbrowser.open(url)
    --- 打开2048 website (webbrowser 这里主要用于检验该url是否有效,不用这段代码完全可以)
    
    ## Selenium automates with Edge
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys

    Webdriver是Selenium的核心,它是python针对不同的Explorer的核心驱动,不同的explorer对应着不同的webdriver版本。

# os.system('taskkill /F /IM Iexplore.exe')
os.system('taskkill /fi "imagename eq msedge.exe" /f'), time.sleep(10)

driver = webdriver.Edge('C:\python386\msedgedriver.exe') # 需要加上webdriver的路径,如果不加的话,需要将MicrosoftWebDriver.exe放在python的安装文件夹如"C:\Python36\MicrosoftWebDriver.exe" (我的貌似放进去还是会报错 ???)
driver.maximize_window()
time.sleep(3)
driver.get(url)
print("Check the browser type - ", type(driver))
## Selenium automates with Chrome
# browser = webdriver.Chrome()
# browser.maximize_window()
# browser.get(url)
# print("Check the browser type - ", type(browser))

bodyControl = driver.find_element_by_tag_name('body') # webdriver对键盘的操作实在该对象上进行的

n = 1
continuePlay = "yes"
while continuePlay.upper() == "YES":
    if "Game over!" not in driver.find_element_by_xpath("/html/body/div[1]/div[3]/div[1]/p").text:
        bodyControl.send_keys(Keys.UP), time.sleep(0.3)
        bodyControl.send_keys(Keys.RIGHT), time.sleep(0.3)
        bodyControl.send_keys(Keys.DOWN), time.sleep(0.3)
        bodyControl.send_keys(Keys.LEFT), time.sleep(0.3)
    else:
        print("The", n, "cycle of this Game is over!")
        continuePlay = input("Do you wanna play again? please enter 'Yes' or 'No' to decide --- ")
        if continuePlay.upper() == "YES":
            driver.find_element_by_class_name("retry-button").click()
            n += 1
        else:
            break

上面代码适用于IE和Chrome,使用了selenium webdriver的常用操作 - 如对象识别方法 xpath,键盘模拟对象Keys,以及基本的判断语法。怎么样?有兴趣的可以copy下来试试看。


Author: Alan_Yuan
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Alan_Yuan !
 Previous
再议爬虫 再议爬虫
python的应用场景有很大一部分是基于计算机网络的,因为现在的人们使用计算机来工作不是孤立的,大部分工作都是在网络上完成的,python在处理这方面的事务上是天然的行家里手,这主要是因为它拥有丰富的网络应用接口包,能处理各种各样的网络请求
Next 
论道-论优秀测试管理者的要素 论道-论优秀测试管理者的要素
最近有不少业内小朋友们问我,做软件测试这个工作难不难?这个行业有潜力吗?能不能长久做下去?加班多不多?收入一般能达到什么段位?。。。哎!不是不想回复,实在是对这些问题提不起兴趣,这么说吧,既然选择这个行业,就不能后悔,一步一个脚印的走下去,
2020-02-14
  TOC