📑打牌 : 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))