Ваш родительский класс может быть слишком широким, и через некоторое время вы можете получить другой элемент, тогда ваш второй запрос не сможет найти правильного потомка.
При поиске с помощью селектора CSS вы можете комбинировать несколько вложенных классов, используя пробелы между ними. Затем вы можете объединить вложенный запрос в один.
Также я предлагаю вам использовать wait в этом случае, чтобы гарантировать, что элемент будет присутствовать. Сравните со сном, он будет периодически отправлять запрос на страницу, пока не найдет ваш запрос.
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
wait = WebDriverWait(driver, '30')
wait.until(EC.presence_of_all_elements_located("css selector", ".classname .anotherclassname")))
Если элемент также должен быть видимым, измените [111 ]sence_of_all_elements_located на visibility_of_any_elements_located
Нет, нет общепринятого общего ответа, это актуальная область исследований в области разработки игр.
Мои 2 цента - это общепринятое мнение - какой из них использовать, действительно зависит от вашего конкретного случая использования - если в вашей игре много данных (то есть, она очень интенсивно использует память, как и большинство игр блокбастеров), вам, вероятно, захочется просто передать изменения. Если ваша игра не требует большого объема памяти (например, аркадных игр), вы, вероятно, можете избежать копирования всего объекта.
Я бы предложил реализовать оба варианта и подключить таймеры производительности, чтобы увидеть, какой из них лучше для вас; возможно реализовать архитектуру, которая может прозрачно обрабатывать оба метода.