我试图使用Python Selenium Web驱动程序发送一个文件。但是我无法使用python找到发送按钮。我可以使用inspect在HTML下方查看:
在文件发送屏幕Whatsapp web screen shot之后,我的Web whatsapp屏幕也没有显示
我使用了以下代码:
fileToSend = file
#Get whatsapp contact
WebDriverWait(driver, wait).until(EC.presence_of_element_located((By.CSS_SELECTOR, '.jN-F5')))
search = driver.find_element_by_css_selector('.jN-F5')
search.send_keys(user + Keys.ENTER)
# click to add
driver.find_element_by_css_selector('span[data-icon="clip"]').click()
# add file to send by file path
attach=driver.find_element_by_css_selector('input[type="file"]')
attach.send_keys(fileToSend)
send=self.driver.find_element_by_class_name('yavlE')
下面是html源代码:
<div role="button" class="_3hV1n yavlE">
<span data-icon="send-light" class="">
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 24" width="28" height="24">
<path fill="#FFF" d="M5.101 21.757L27.8 12.028 5.101 2.3l.011 7.912 13.623 1.816-13.623 1.817-.011 7.912z"></path>
</svg>
</span>
</div>
请帮助。
谢谢, 萨米尔
答案 0 :(得分:1)
您在以下步骤中使用了错误的类名:
self.driver.find_element_by_class_name('yavlE')
用下面的定位符替换上面的行,然后重试:
self.driver.find_element_by_xpath("//div[contains(@class, 'yavlE')]");
仍然会收到NoSuchElementException,然后尝试给出如下所示的延迟:
from time import sleep
sleep(3)
self.driver.find_element_by_xpath("//div[contains(@class, 'yavlE')]");
我希望它能起作用...