Selenium||解决给元素输入文本失败问题

这篇具有很好参考价值的文章主要介绍了Selenium||解决给元素输入文本失败问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1,问题背景

最近在基于selenium+python框架学习WEB自动化测试,在尝试对textarea控件直接使用send_keys()方法进行输入文本操作时,报错了,提示输入失败,界面上效果看也未能成功实现文本信息输入。


```python
#conding = utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By

# 1,打开网址
w = webdriver.Chrome()
w.get('https://fanyi.youdao.com') #打开有道翻译首页

# 2,输入框输入内容
w.find_element(By.ID, 'inputOriginal').send_keys('世界上最好的语言') 

2,问题原因

<textarea id="inputOriginal" dir="auto" class="input__original__area" placeholder="请输入你要翻译的文字或网址"></textarea>

textarea控件内设置了默认值(placeholder=“请输入你要翻译的文字或网址”),导致不能直接用send_keys()方法进行输入文本操作

3,问题解决

方法1:先清空默认值再输入文本

先使用clear()方法先清空默认文本 -> 再使用send_keys()方法进行输入文本操作。示例代码如下:

#conding = utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By

# 1,打开网址
w = webdriver.Chrome()
w.get('https://fanyi.youdao.com') #打开有道翻译首页

# 2,输入框输入内容
e = w.find_element(By.ID, 'inputOriginal')
e.clear() #清空默认文本
e.send_keys('世界上最好的语言') #输入文本
方法2:通过执行js脚本实现文本输入

webdriver提供了execute_script()方法来执行js脚本,利用js脚本来间接实现文本输入。
写好输入文本的js语句并用变量A存储 -> 调用webdriver的execute_script()方法来执行js脚本,实现文本输入。示例代码如下:

#conding = utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By

# 1,打开网址
w = webdriver.Chrome()
w.get('https://fanyi.youdao.com')

# 2,输入框输入内容
jsStr = "var d = document.getElementById('inputOriginal');d.value='世界上最好的语言';"
w.execute_script(jsStr)

4,运行测试

Selenium||解决给元素输入文本失败问题,测试笔记,selenium,python,爬虫文章来源地址https://www.toymoban.com/news/detail-541342.html

到了这里,关于Selenium||解决给元素输入文本失败问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium点击元素失败:</a> is not clickable at point解决办法

    代码: 报错:selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element … is not clickable at point (871, 546)… 元素单击捕获的异常,字面意思说这个元素不支持单击。 尝试使用下面方式有效:

    2024年02月02日
    浏览(54)
  • selenium自动化:定位到的元素本身有值,但是打印出来的文本值为空。【已解决】

    问题描述: 部分代码段如下:  元素定位是存在文本的【4174】 结果运行代码 输出为空 解决方法: 1. 判断元素是否被隐藏  print ( driver.find_element(xxxx).is_displayed() ) 若返回值为False或者空白,那就说明原因被隐藏了 2. 用get_attribute()方法获取 driver.find_element(xxxx).get_attribute(“

    2024年02月13日
    浏览(51)
  • 【selenium】pip install selenuim失败问题解决

            windows系统安装PyCharm和python (3.12版本) ,配置python环境变量。         PyCharm引入chromedriver,PyCharm使用pip install selenium下载selenium。         度娘上看了各种类似报错的处理方法,跟着折腾了一遍,花了一整天都没搞定,郁闷了。         第二天继续处理,看

    2024年02月09日
    浏览(32)
  • Python + selenium 安装问题,pip install selenium失败及解决方法

              最近想要是使用Python 访问下浏览器,网上关于这些东西都很多,Python 安装和 selenium 的下载就不赘述,这里简单总结一下第一次安装Python + selenium中遇到的问题。     Python傻瓜式安装,但注意 安装目录选择 , 环境变量的添加 。     selenium.exe下载对应浏览器对应

    2024年02月11日
    浏览(51)
  • 解决selenium访问网页中多个iframe,导致无法锁定元素的问题

    获取全部的iframe列表 调试获取目标iframe 使用: browser.switch_to.frame(目标iframe) 退回到原有的状态: browser.switch_to.default_content() 不同的iframe之间的元素无法被selenium锁定,因此需要通过人为调试,得到具体的iframe窗口,进入目标iframe后才能够进行元素的锁定,锁定后就得到目标

    2024年02月22日
    浏览(34)
  • Selenium 根据元素文本内容定位

    使用xpath定位元素时,有时候担心元素位置会变,可以考虑使用文本内容来定位的方式。 例如图中的【股市】按钮,只有按钮文本没变,即使位置变化也可以定位到该元素。   xpath内容样例:

    2024年02月14日
    浏览(46)
  • Selenium 定位伪元素,获取伪元素中的文本

    伪元素的定义:         不是真正的页面元素,html没有对应的元素,但是其所有用法和表现行为与真正的页面元素一样,可以对其使用诸如页面元素一样的css样式,表面上看上去貌似是页面的某些元素来展现,实际上是css样式展现的行为,因此被称为伪元素。  前端有些

    2024年04月14日
    浏览(30)
  • selenium元素操作(一):获取文本text

    1 分钟了解一个测开小知识: selenium 对元素进行操作(一):获取文本text :.text 例如: 想要获取到这里的文本内容 首先定位到元素: NR = driver.find_element_by_Xpath(\\\'//*[@id=\\\"s_xmancard_mine_new\\\"]/div[1]/div[2]/div/div[3]/div[1]/div[3]/a\\\') 然后使用获取元素的描述: NR_Text = NR.text

    2024年02月02日
    浏览(34)
  • python+selenium 解决显示时间很短的提示框无法定位元素的问题

    在做注册功能的时候,想要获取提示框的提示信息。但是点击注册按钮后提示框显示的时间极短,导致没有办法准确定位到元素。从而也没办法获取到提示信息。在各种百度之后总算解决了这个问题。 第一步:定位元素之前,先选到Sources栏,然后操作网页 等提示框出现之后

    2024年02月15日
    浏览(33)
  • selenium获取html元素中的文本内容

    方法1: .text 直接定位元素 直接使用xpath路径定位元素,最后使用 .text 获取元素中文本 注意!!: 此时text_translation取.text 之前 类型为WebElement 方法2: text() 使用etree.HTML (提前导入模块from lxml import etree) etree.HTML先解析当前页面资源,再路径定位元素时,路径最后 添加 /text(

    2024年02月16日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包