随笔- 177  文章- 0  评论- 0  阅读- 1475 

                                                                                          

                                   📑打牌 : da pai ge的个人主页
                                   🌤️个人专栏 : da pai ge的博客专栏
                                  ☁️山水速疾来去易,襄樊镇固永难开

☁️定位页面的元素

参数:抽象类By里的方法,如cssSelector、xpath、id、name、classname

​​

🌤️定位元素的方法


📑css选择器


基础选择器
id选择器、类选择....
复合选择器
子类选择器、父类选择器...

//css选择器
String xwtest = driver.findElement(By
a:nth-child(1)")).getText()

📑xpath选择器


语法:
层级:/子级 //跳级属性: @函数: contains ()..

driver.findElement(By.xpath( xpathExpr
"//*[@id=\"su\"]")) .click()

🌤️具体语法

📑click


提交: submitclick和submit都可以操作按饥
可以click不一定可以submit
但是页面的任何元素都可以click
selenium官方文档里不建议使用submit

/cLick点击行为
driver.findElement(By.xpath( xpathExpr
"//*[@id=\"su\"]")) .click()


📑 模拟按键输入: send keys

/模拟按键进行输入send_keys
driver.findElement(By.cssSelector("#kw")).sendKeys( ...keysToSend: "火箭")
driver.findElement(By.cssSelector("#kw")).sendKeys( ...keysToSend: "


📑 clear () 清除对象输入的文本内容

/clear清除对象输入的文本内容
driver.findElement(By.cssSelector("#kw")).sendKeys( ...keysToSend: "java");
Thread.sleep( millis: 3000) ;
driver.findElement(By.cssSelector("#kw")).clear();
Thread.sleep( millis: 3000);
driver.findElement(By.cssSelector("#kw")).sendKeys( ...keysToSend: "java");
Thread.sleep( millis: 3000) :


📑gettext获取文本

//获取文本gettext
String bdtext = driver.findElement(By.cssSelector("#hotsearch-content
> li:nth-child(1) > a > span.title-content-title")).getText()


黑要注意下:不是说页面上可以看见的文之都能成为文本,有的文本是属性对应的显性值,不能够通过eetTet0来获取文太
获取属性值:使用getAttribute () 方法来获取属性值

//如何获取属性值
String bdtext = driver.findElement(By.cssSelector("#su")).getAttribute( name: "value");
System.out.printLn("期望的属性值: 百度-
,实际打印的是:"+bdtext);


🌤️等待


代码的执行速度比较快,而前端页面渲染的速度相对较慢一点,可能导致的结果是:代码已经执行到下一步了,页面还没有渲染出来,元素找不到。
等待又分为三个:强制等待、隐式等待、显式等待


📑强制等待:


让程序暂停一会,等待指定的时间之后继续执行下一步。
 

oublic void wait_Test()
throws
InterruptedException
//不添加等待的话页面没有渲染完成,导致最后一步的查找页面元素失败,添加强制等待3s再进行页面元素查找,结果成功
driver.findElement(By.cssSelector("#kw")).sendKeys( ...keysToSend: "迪丽热巴");
driver.findElement(By.cssSelector("#su")).click();
Thread.sleep( millis: 3000) ;
driver,findElement(By.cssSelector("# 131 > div > div.header-left_1BntJ > div.

📑隐式等待


在规定的时间范围内,轮询等待元素出现之后就立即结束,如果在规定的时间内元素仍然没有出现,则会抛出一个NoSuchElementException异常
 

//隐式等待
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(3))

 posted on   dapaige  阅读(2)  评论(0编辑  收藏  举报  
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示