Selenium Webdriver 在文本区域插入来自 python 的文本

问题描述

  <a href="/about.html">About Page</a>

  <a href="/services.html">Our Services</a>

这是文本区域标签。我想在文本区域中插入一些文本。我如何处理 selenium webdriver 的 python 代码

我试过了:

<textarea style="font-size: 1.2em" ng-model="applications" ng-list=" " ng-trim="false" rows="15" cols="70" class="ng-valid ng-dirty ng-valid-parse ng-touched"></textarea>

请帮帮我。

解决方法

 driver.find_element_by_class_name("ng-pristine.ng-valid.ng-touched"). 

 driver.find_element_by_xpath("//textarea[@claaa='ng-pristine ng-valid ng-touched']")

带空格的类表示多个类,所以在 find_element_by_class 中必须用点替换空格

否则使用 xpath 查找与类的绝对属性值匹配的元素

,

要将字符序列发送到元素,您可以使用以下任一Locator Strategies

  • 使用 css_selector

    driver.find_element_by_css_selector("textarea.ng-valid.ng-dirty.ng-valid-parse.ng-touched[ng-model='applications']").send_keys("samhith gardas")
    
  • 使用 xpath

    driver.find_element_by_xpath("//textarea[@class='ng-valid ng-dirty ng-valid-parse ng-touched' and @ng-model='applications']").send_keys("samhith gardas")
    

然而,所需的元素是 Angular 元素,因此理想情况下,将 字符序列 发送到您需要为 element_to_be_clickable() 引入 WebDriverWait 和您可以使用以下任一 Locator Strategies

  • 使用 CSS_SELECTOR

    WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"textarea.ng-valid.ng-dirty.ng-valid-parse.ng-touched[ng-model='applications']"))).send_keys("samhith gardas")
    
  • 使用 XPATH

    WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//textarea[@class='ng-valid ng-dirty ng-valid-parse ng-touched' and @ng-model='applications']"))).send_keys("samhith gardas")
    
  • 注意:您必须添加以下导入:

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