Python 3.x windows搜索屏幕上的字符串已断开

Python 3.x windows搜索屏幕上的字符串已断开,python-3.x,selenium-webdriver,whatsapp,Python 3.x,Selenium Webdriver,Whatsapp,我正在开发一个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

我正在开发一个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
但是输出是car\Documents\Lanchonete\001 Cardapio.png

尤其是在外部网站上,页面加载需要一段时间。这意味着下一步(或其中的一部分)可能会被忽略,因为页面尚未准备好接收来自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()

其中第二行是导致加载新页面的任何内容。请注意,此过程取决于旧页面中是否存在标记,这通常非常可靠。

只是猜测,但请尝试将时间放在pyautogui之前。打字(您将需要导入时间)非常好。我有一个更好的方法来等待一个页面,我将添加它作为答案。