python - 需要让小游戏自动运行......我不知道如何解决它
问题描述
如果你进入链接,你会看到一个小游戏。我需要让这个小游戏自己做。
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()
我只需要让迷你游戏自己运行但我不知道该怎么做如果你不介意你的时间,告诉我如何解决这个问题
解决方案
只需执行以下操作。通过等待元素加载来获取所有跨度文本。然后执行 for for 循环以单击相似的值。
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)。
进口
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
推荐阅读
- javascript - 如何在 JavaScript 中计算两个日期之间的昼夜小时数
- powershell - Powershell 5.1.16299.1146 Get-ADGroupMember 发生操作错误
- amazon-web-services - AWS 配置选项 source_profile 在调用 AssumeRole 操作时导致 AccessDenied
- google-maps - 如何在本机反应中放大特定标记并可以选择地图中的任何其他标记?
- vb.net - 在函数内使用“exit for”
- python - ValueError:形状(1,1)和(4,1)未对齐:1(dim 1)!= 4(dim 0)
- reactjs - 使用 apollo useQuery 时有没有办法禁用 apollo-link-dedup?
- dynamics-crm - 表单中的一对多查找字段
- javascript - 在 Sanity.io GROQ 查询中随机排序不起作用?
- java - 如何将本地坐标转换为 JavaFX 图表坐标