尝试通过 Python 使用 Selenium 查找文本区域输入框时无法找到元素错误

Unable to locate element error while trying to locate a textarea input box using Selenium through Python

提问人:Ivy Johnson 提问时间:9/28/2023 更新时间:9/28/2023 访问量:21

问:

我正在尝试使用 Python 和 Selenium 在网页上找到一个文本框。我尝试了 通过 .css_selector、ID、名称和 iFrame 视图,但消息始终是:

无法找到元素:textarea.paragraph-input

这是 HTML 的一部分。

<textarea style="padding-right:0; height:4rem;" class="paragraph-input" data-name="description" placeholder="(This portion is constantly changing)"></textarea>]]

我的代码是:

browser.get(siteName)
browser.implicitly_wait(timeout)
#browser.switch_to.frame(browser.find_element(By.TAG_NAME, 'iframe'))
search_form = browser.find_element(By.CSS_SELECTOR, "textarea.paragraph-input")
search_form.click()
search_form.send_keys(results)

任何帮助都是值得赞赏的

我尝试使用 textarea 和 paragraph-input 更改find_element值,但两者都不起作用。 由于无能,我唯一没有尝试的是 xPath

python selenium-webdriver nosuchelementexception findelement

评论


答:

0赞 Tal Angel 9/28/2023 #1

不幸的是,Selenium 在连字符、空格和其他字符方面表现不佳。

如果您希望找到包含特殊字符的属性,请执行以下操作:

css_exp = 'textarea[class*="paragraph"][class*="input"]'
search_form = browser.find_element(By.CSS_SELECTOR, css_exp)

符号 *= 表示部分匹配。它将(在此示例中)查找所有具有包含单词“paragraph”的类的类,并从该组中查找所有具有包含单词“input”的类的类。Textarea

另外,请确保您的元素不在 Iframe 中。如果是另一个 Iframe,则必须首先关注 Iframe。