我正试图发送一个带有selenium和chromedriver的whatsapp,但是当我运行代码时,我得到一个错误和一个回溯。
我已经尝试了我能做的一切(我对python略知一二,我在学习,我对selenium一无所知,但我必须尽快让它工作起来),我也尝试了很多,尝试了很多东西,但我无法让它工作。
如果有人能帮助我,我将非常感激
错误是:
[WDM] - ====== WebDriver manager ====== [WDM] - Current google-chrome version is 89.0.4389 [WDM] - Get LATEST driver version for 89.0.4389 [WDM] - Driver [C:\Users\Crist.wdm\drivers\chromedriver\win32\89.0.4389.23\chromedriver.exe] found in cache
DevTools listening on ws://127.0.0.1:56076/devtools/browser/0c5e0486-3e61-47d1-80f0-7ecfe21ffb6e Scan QR Code, And then Enter
Logged In [14880:8104:0320/205615.019:ERROR:device_event_log_impl.cc(214)] [20:56:15.018] USB: usb_device_handle_win.cc:1056 Failed to read descriptor from node connection: Uno de los dispositivos conectados al sistema no funciona. (0x1F) [14880:8104:0320/205615.046:ERROR:device_event_log_impl.cc(214)] [20:56:15.046] Bluetooth: bluetooth_adapter_winrt.cc:1072 Getting Default Adapter failed. Traceback (most recent call last): File "C:\Users\Crist\Desktop\Whattsapp mama\prueba.py", line 19, in input_box_search = WebDriverWait(driver,50).until(lambda driver: driver.find_element_by_xpath(inp_xpath_search)) File "C:\Users\Crist\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message:
C:\Users\Crist\Desktop\Whattsapp mama>[14880:8104:0320/210116.161:ERROR:device_event_log_impl.cc(214)] [21:01:16.161] USB: usb_service_win.cc:258 Failed to get device driver name: No se ha encontrado el elemento. (0x490)
代码是这样的(这正是让它工作所需要的):
contact = ["cristobal de toro", "cristobal", "gonzalo molina"]
text = "Hey, this message was sent using Selenium"
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://web.whatsapp.com")
print("Scan QR Code, And then Enter")
input()
print("Logged In")
inp_xpath_search = "//input[@title='Search or start new chat']"
input_box_search = WebDriverWait(driver,50).until(lambda driver: driver.find_element_by_xpath(inp_xpath_search))
input_box_search.click()
time.sleep(2)
input_box_search.send_keys(contact)
time.sleep(2)
selected_contact = driver.find_element_by_xpath("//span[@title='"+contact+"']")
selected_contact.click()
inp_xpath = '//div[@class="_2S1VP copyable-text selectable-text"][@contenteditable="true"][@data-tab="1"]'
input_box = driver.find_element_by_xpath(inp_xpath)
time.sleep(2)
input_box.send_keys(text + Keys.ENTER)
time.sleep(2)
driver.quit()
因此,我查看了whatsapp web版本的代码,似乎每次刷新页面时,每个联系人都会被分配到一个随机uid(至少在我的情况下是这样)。这意味着您需要使用pyautogui之类的工具来单击页面上可预测的位置。至于实际的输入区域,它甚至不是一个输入,所以selenium在这种情况下不起作用。我只是写了一些示例代码来说明这是如何工作的——我在一台13英寸的笔记本电脑上,所以你可能需要用
使用以下软件安装pyautogui:
下面是示例代码:
相关问题 更多 >
编程相关推荐