尝试通过Python使用Selenium定位文本区域输入框时,无法定位元素错误

cygmwpex  于 2023-09-29  发布在  Python
关注(0)|答案(1)|浏览(198)

我试图在一个包含Python和Selenium的网页上找到一个文本框。我尝试通过.css_selector,通过ID,通过名称并在视图中使用iFrame,但消息始终是:
无法定位元素:textarea.paragraph-input
这是HTML的一部分。

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

我的代码是:

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

如有任何帮助,我们将不胜感激
我试过用textarea和paragraph-input来改变find_element的值,但都不起作用。唯一的事情,我没有尝试,由于无能是xPath

lbsnaicq

lbsnaicq1#

不幸的是,Selenium不能很好地处理连字符、白色和其他字符。
如果你想找到一个包含特殊字符的属性,可以这样做:

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

符号***=**表示部分匹配。它将查找(在本例中)所有具有包含单词“paragraph”的类的Textarea,并从该组中查找具有包含单词“input”的类的所有Textarea
另外,请确保您的元素不在Iframe中。如果是另一个Iframe,则必须首先关注Iframe。

相关问题