Сломанная строка на экране поиска Windows - PullRequest
0 голосов
/ 17 июня 2019

Я разрабатываю приложение на python для отправки некоторых изображений через WhatsApp, но когда я пытаюсь прикрепить изображение, слово не работает, кто-нибудь знает, что происходит?

html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
AbreAnexo = driver.find_element_by_css_selector('span[data-icon="clip"]')
AbreAnexo.click()
AbreImagem = driver.find_element_by_css_selector('button[class="Ijb1Q"]')
AbreImagem.click()
pyautogui.typewrite("C:\\Users\\f_teicar\\Documents\\Lanchonete\\001-Cardapio.png",interval=0.02)
time.sleep(5)
pyautogui.press('enter')
time.sleep(5)
pyautogui.press('enter')

Ожидается запись C: \ Users \ f_teicar \ Documents \ Lanchonete \ 001-Cardapio.png но вывод это машина \ Documents \ Lanchonete \ 001-Cardapio.png

1 Ответ

1 голос
/ 17 июня 2019

Особенно на внешних веб-сайтах загрузка страницы занимает некоторое время. Это означает, что следующий шаг (или его часть) может быть проигнорирован, поскольку страница не готова для получения дальнейших операций от клиента Selenium.

time.sleep (n), где n - это количество секунд ожидания, это быстрый способ ожидания загрузки страницы, но если это займет немного больше времени, чем указано вами, произойдет сбой, и если он загружается намного быстрее, тогда он будет тратить время. Поэтому я использую функцию для ожидания такой страницы.

@contextmanager
from selenium import webdriver
from selenium.webdriver.support.expected_conditions import staleness_of
from contextlib import contextmanager

def wait_for_page_load(timeout=MAX_WAIT):
    """ Wait for a new page that isn't the old page 
    """
    old_page = driver.find_element_by_tag_name('html')
    yield
    webdriver.support.ui.WebDriverWait(driver, timeout).until(staleness_of(old_page))

Чтобы вызвать функцию, используйте что-то вроде

with self.wait_for_page_load():
    AbreImagem.click()

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

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