Selenium在web游戏中的简单应用
环境准备:
1 安装selenium
pip install selenium (#Dos mode)
代码实现
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下来试试看。