提问人:Ivy Johnson 提问时间:9/28/2023 更新时间:9/28/2023 访问量:21
尝试通过 Python 使用 Selenium 查找文本区域输入框时无法找到元素错误
Unable to locate element error while trying to locate a textarea input box using Selenium through Python
问:
我正在尝试使用 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
答:
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。
评论