Как дождаться появления панели инструментов в skribbl.io | Python

#python #python-3.x #selenium #selenium-webdriver #selenium-chromedriver

#python #python-3.x #селен #selenium-webdriver #selenium-chromedriver

Вопрос:

Я пытаюсь запрограммировать скриббл.взлом ввода-вывода. Skribblio — это веб-сайт, на котором вы что-то рисуете, а люди должны угадать, что вы нарисовали. Мне нужно, чтобы бот подождал, пока панель инструментов рисования не появится и не будет доступна для взаимодействия, прежде чем пытаться что-либо нарисовать. Я пытаюсь использовать этот код для этого:

 Class Drawing:
  #some other code


  def response(self):
    try:
      self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".containerToolbar[style]")))
    finally:
      return 'found'

D = Drawing()

while True:
  if D.response() == 'found':
    print('got good response')
    break
  

однако найденный возвращается, как только я вхожу в лобби перед игрой. Игра даже не началась, а это уже возвращено. Вероятно, стоит упомянуть, что рисунок tooblbar выглядит так, когда он невидим:

 <div class="containerToolbar" style="display: none;">
  

и вот так, когда она видна:

 <div class="containerToolbar" style>
  

Если кто-то может провести некоторое исследование самостоятельно, создав приватную игру и присоединившись к ней на другой вкладке, это было бы очень полезно.

Ответ №1:

WebElement Desired_element = driver.findElement(By.xpath("your xpath")); WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(ExpectedConditions.elementToBe Clickable/visible/enable(Desired_element )); Desired_element.click; вам нужно попробовать аналогичную вещь в python