Python selenium-使用browser.find_element_by_id()isn';t查找ID为的对象
我对硒有点问题。作为一个整体,我对Selenium、web抓取和python都是新手。我正在做一个实践项目,我可以直接从IDE发送电子邮件 我能够很好地在“发送到”、“抄送”和“主题行”中输入内容。我在输入正文时遇到问题 以下是我的电子邮件/检查元素的屏幕截图: 正如您在这张图像中所看到的(通过stackOverflow像素化,但我认为您可以理解,主体是一个ID为“tinymce”的大框。表示此文本输入的代码块是:Python selenium-使用browser.find_element_by_id()isn';t查找ID为的对象,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,我对硒有点问题。作为一个整体,我对Selenium、web抓取和python都是新手。我正在做一个实践项目,我可以直接从IDE发送电子邮件 我能够很好地在“发送到”、“抄送”和“主题行”中输入内容。我在输入正文时遇到问题 以下是我的电子邮件/检查元素的屏幕截图: 正如您在这张图像中所看到的(通过stackOverflow像素化,但我认为您可以理解,主体是一个ID为“tinymce”的大框。表示此文本输入的代码块是: <body id="tinymce" class=&
<body id="tinymce" class="mce-content-body mce-inactive-editor" data-id="ZmHtmlEditor1_body"
contenteditable="true" style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: rgb(0,
0, 0); width: 696px; height: 212px;" data-mce-style="font-family: arial, helvetica, sans-serif; font-
size: 10pt; color: #000000;" dir="LTR" aria-label="Compose body"><div><br data-mce-bogus="1"></div>
</body>
我首先单击正文文本以激活输入,然后单击内容的sendkeys
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="tinymce"]"}
(Session info: chrome=84.0.4147.125)
你可以用
find_element_by_id()
或
但是,如果在执行命令之前未加载元素,则错误将是相同的
为此,您可以使用以下方法
import time
time.sleep(5)
在打开网页后使用time.sleep,以便在执行任何操作之前可以完全加载该网页以在您必须诱导的元素内发送字符序列,从而使元素可单击()
,并且您可以使用以下任一方法:
- 使用
:CSS\u选择器
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "body.mce-content-body.mce-inactive-editor#tinymce"))).sendKeys(content)
- 使用
:XPATH
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//body[@class='mce-content-body mce-inactive-editor' and @id='tinymce']"))).sendKeys(content)
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//body[@class='mce-content-body mce-inactive-editor' and @id='tinymce']"))).sendKeys(content)
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC