python - 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>
这是文本区域标签。我想在文本区域中插入一些文本。如何继续使用 selenium webdriver 的 python 代码。
我试过了:
driver.find_element_by_class_name("ng-pristine ng-valid ng-touched")
请帮帮我。
解决方案
要将字符序列发送到元素,您可以使用以下任一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元素,因此理想情况下要将字符序列发送到您需要诱导WebDriverWait的元素,element_to_be_clickable()
并且您可以使用以下任一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
推荐阅读
- html - HTML - Flexbox 元素在中心独立于其他元素对齐,同时保持其填充
- microcontroller - USART和SPI通信有什么区别?
- kotlin - 创建一个使用递归在 kotlin 中生成所有字符串排列的方法
- python - 如何使用 Python 中的大量列表字典来扩展操作?
- oracle - OCIDESCRIPTORFREE 崩溃而不是返回 OCI_INVALID_HANDLE
- azure - 如何从 azure blob 容器访问/导出数据?
- python - 有什么方法可以使用 sql lite 数据库中列表中的值
- python - Python“for循环”有两个参数
- javascript - 使用过滤器渲染 html
- html - 使用css激活时更改boostrap下拉列表的背景颜色