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

n3ipq98p  于 2023-02-12  发布在  Python
关注(0)|答案(2)|浏览(162)
<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>

这是文本区域标签。我想在文本区域中插入一些文本。我如何继续使用selenium webdriver的python代码。
我试过:

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

请帮帮我。

lhcgjxsq

lhcgjxsq1#

要将 * 字符序列 * 发送到元素,可以使用以下任一定位器策略:

  • 使用 * 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元素,因此理想情况下,要向需要引发WebDriverWait的元素发送 * 字符序列 *,可以使用以下任一定位器策略:

  • 使用 * CSS选择器 *:
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
rdlzhqv9

rdlzhqv92#

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并查找与类的绝对属性值匹配的元素

相关问题