【问题标题】:How to send text within a textarea using Selenium and Python如何使用 Selenium 和 Python 在文本区域内发送文本
【发布时间】:2020-12-24 15:17:06
【问题描述】:

已解决

解决方案: 我只是用firefox代替chrome,问题神奇地消失了!

我有一个 selenium 机器人,可以在具有给定信息的网站上添加产品。这曾经可以工作,但现在不行。我想在 textarea 中粘贴描述,但它会将描述粘贴到 SEO Title 字段中。 chrome浏览器在粘贴描述时会冻结几秒钟,这也是新的。

在上面区域清除或粘贴文字时也会留下一点文字,我不知道为什么。

代码在这里。

textarea = driver.find_element_by_css_selector("textarea#content")
textarea.clear()
textarea.click()
textarea.send_keys(str(desc))

这会清除想要的文本区域,但会将密钥发送到错误的位置,需要帮助。

这是应该粘贴描述的地方

这是一个叫做 SEO Title 的地方,它在这里粘贴描述而不是 textarea

显示错误的示例图像,文本应位于上部文本区域

提到的两个区域的原始图像

【问题讨论】:

    标签: python selenium xpath css-selectors webdriverwait


    【解决方案1】:

    要在<textarea> 中发送字符序列,您可以使用以下任一Locator Strategies

    • 使用css_selector

      textarea = driver.find_element_by_css_selector("textarea.wp-editor-area#content[name='content']")
      textarea.click()
      textarea.clear()
      textarea.send_keys(str(desc))
      
    • 使用xpath

      textarea = driver.find_element_by_xpath("//textarea[@class='wp-editor-area' and @id='content'][@name='content']")
      textarea.click()
      textarea.clear()
      textarea.send_keys(str(desc))
      

    理想情况下,点击您需要为WebDriverWait 诱导element_to_be_clickable() 的元素,您可以使用以下Locator Strategies 之一:

    • 使用CSS_SELECTOR

      textarea = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "textarea.wp-editor-area#content[name='content']")))
      textarea.click()
      textarea.clear()
      textarea.send_keys(str(desc))
      
    • 使用XPATH

      textarea = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//textarea[@class='wp-editor-area' and @id='content'][@name='content']")))
      textarea.click()
      textarea.clear()
      textarea.send_keys(str(desc))
      
    • 注意:您必须添加以下导入:

      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support import expected_conditions as EC
      

    【讨论】:

    • 感谢您的回答,但这也没有改变任何东西,只是它没有在想要的文本区域粘贴一点文本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 2023-03-29
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    相关资源
    最近更新 更多