首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要让minigame自动运行...我没有办法解决这个问题

需要让minigame自动运行...我没有办法解决这个问题
EN

Stack Overflow用户
提问于 2021-02-27 13:44:26
回答 1查看 35关注 0票数 0

http://zzzscore.com/memory/

如果你进入链接,你会看到一个迷你游戏。我需要让这个小游戏自己来做。

代码语言:javascript
复制
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome('../chromedriver')
driver.get('http://zzzscore.com/memory/')
driver.implicitly_wait(5)
def find_click():
    picture1 = btns[0].value_of_css_property('background-color')
    picture2 = btns[1].value_of_css_property('background-color')
    picture3 = btns[2].value_of_css_property('background-color')
    picture4 = btns[3].value_of_css_property('background-color')
    picture5 = btns[4].value_of_css_property('background-color')
    picture6 = btns[5].value_of_css_property('background-color')
    picture7 = btns[6].value_of_css_property('background-color')
    picture8 = btns[7].value_of_css_property('background-color')
    picture9 = btns[8].value_of_css_property('background-color')
    picture10 = btns[9].value_of_css_property('background-color')
    picture11 = btns[10].value_of_css_property('background-color')
    picture12 = btns[11].value_of_css_property('background-color')
    picture13 = btns[12].value_of_css_property('background-color')
    picture14 = btns[13].value_of_css_property('background-color')
    picture15 = btns[14].value_of_css_property('background-color')
    picture16 = btns[15].value_of_css_property('background-color')

    for btn in btns:
        if picture1 == picture2:
            btn[1].click()
            btn[5].click()
            break


time.sleep(3)

# finding buttons
btns = driver.find_elements_by_css_selector('#body > div')

# looking <span>'s class
for b in btns:
    val = b.find_element_by_css_selector('span').get_attribute('class')
    print(val)
while True:
    find_click()

我只需要让迷你游戏自己运行,但我不知道该怎么做,我的精神崩溃了..说真的,你不必这么做,因为我知道我不擅长编程,英语也很差。如果你不介意花时间,请告诉我怎么解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2021-02-27 14:45:17

只需执行以下操作即可。通过等待元素加载来获取所有span文本。然后执行for循环以单击相似的值。

代码语言:javascript
复制
wait = WebDriverWait(driver, 3)
driver.get("http://zzzscore.com/memory")
images = wait.until(EC.presence_of_all_elements_located((By.XPATH,"//div[@class='grid x4']//span")))
#for image in images:
    #driver.execute_script("arguments[0].removeAttribute('style')",image)
for i in images[:-1]:
    for j in images[1:]:
        if i.get_attribute('class')==j.get_attribute('class'):
            i.click()
            j.click()
        #print(i.get_attribute('class'),j.get_attribute('class'))

一种更困难但更快的方法是删除索引,而不是O(n^2)。

导入

代码语言:javascript
复制
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66395971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档