Python Селен Chrome Вебдрайвер: взаимодействие с игрой - PullRequest
1 голос
/ 03 мая 2020

У меня проблема с взаимодействием с сайтом. Для меня это первый раз, когда я использовал Python для таких вещей. Я хочу написать код, чтобы играть в игру по этой ссылке: https://www.coolmathgames.com/0-worlds-hardest-game. Я попытался использовать этот код для перемещения игрока внутри игры, но в результате веб-страница прокручивается, а игрок не двигается.

import random
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get('https://www.coolmathgames.com/0-worlds-hardest-game')

moves = [Keys.LEFT, Keys.DOWN, Keys.RIGHT, Keys.UP]
time.sleep(10)
i = 0
while i < 100:
    time.sleep(0.1)
    driver.find_element_by_css_selector('html').send_keys(random.choice(moves))
    i += 1

(вставлена ​​инструкция time.sleep (10) чтобы я мог вручную войти в игру)

Какой код используется для взаимодействия с игрой, а не только со страницей сайта?

1 Ответ

0 голосов
/ 03 мая 2020

Игра внутри фрейма. Вы должны войти в iframe и соответственно управлять экземплярами iframe.

Проверьте следующий снимок экрана, который я сделал по ссылке, вставленной в ваш вопрос:

enter image description here

Вот пример того, как вы можете ввести iframe:

driver = webdriver.Chrome()

## Enter into the iframe
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))

# Locate and do whatever you want inside the iframe (all the tags or attributes must be sub-attributes of this iframe tag)
element = driver.find_element_by_xpath("/html/body/p")

# If you don't want to do anything else inside the iframe and you want to do something in the platform (outside of the game) then you need to quit from the iframe and switch to the default content by executing the following line
driver.switch_to.default_content()

Если вам нужно что-нибудь еще подробно, проверьте официальную документацию Selenium .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...