selenium php 使用,元素操作 · PHP Selenium使用教程 · 看云

## 元素操作

> 前面讲到了不少知识都是定位元素,定位只是第一步,定位之后需要对这个原素进

行操作。鼠标点击呢还是键盘输入,这要取决于我们定位的是按钮还输入框。

一般来说,webdriver 中比较常用的操作对象的方法有下面几个

>* click 点击对象

>* send_keys 在对象上模拟按键输入

>* clear 清除对象的内容,如果可以的话

>* submit 清除对象的内容,如果可以的话

[TOC]

#### 1.输入框

~~~

$element = $driver->findElement(WebDriverBy::id('wd'));

$element->sendKeys("wwe");//在输入框中输入内容

$element->clear();//将输入框清空

$element->getAttribute('value');//获取输入框的文本内容

~~~

#### 2.单选框

~~~

$radio = $driver->findElement(WebDriverBy::id('BookMode'));

$radio->click();//选择某个单选项

$radio->isSelected();//判断某个单选项是否已经被选择

~~~

#### 3.多选框

~~~

$checkbox = $driver->findElement(WebDriverBy::id('myCheckbox'));

$checkbox->click();//选择某选项

$checkbox->isSelected();//判断该选项是否已经被选择

$checkbox->isEnabled();//判断是否enable

~~~

#### 4.下拉框

> 下拉框是我们最常见的一种页面元素,对于一般的元素,我们只需要一次就定位,但下拉框里的内容需要进行两次定位,先定位到下拉框,再定位到下拉框内里的选项。

~~~

$select = $driver->findElement(WebDriverBy::id('myselect'));

$select->findElement(WebDriverBy::xpath("//option[@value='100']"))->click();//找到值为100的选项进行选中

~~~

#### 5.按钮

~~~

$btn = $driver->findElement(WebDriverBy::id('btn'));

$btn->click();//点击按钮

$btn->isEnabled();//判断是否enable

~~~

#### 6.文件上传

~~~

$upload = $driver->findElement(WebDriverBy::id('img-upload'));

$filePath = "C:\test\\uploadfile\\media_ads\\test.jpg";

$upload->sendKeys($filePath);

~~~

#### 7.指定元素点击

> 因为有时候因为种种原因(如元素上有蒙版层或者因为一些浮动的div导致坐标变化或者不可点击),而不能使用$ele.click()时,采用通用的方式,就是用JS执行点击事件。而且点击事件是可被监听的,可在元素上写onclick事件进行监听。

~~~

//用webdriver获取对象,再进行JS操作

$ele = $driver->findElement(WebDriverBy::id('haha'));

$driver->executeScript("arguments[0].click();",[$ele]);

//用JS获取对象进行操作

$js = <<

var ele = document.getElementById('haha');

ele.click();

js;

$driver->executeScript($js);

~~~

#### 8.滚动到指定元素

> 用JS的方式滚动到指定的元素。

~~~

$ele = $driver->findElement(WebDriverBy::id('haha2'));

$driver->executeScript("arguments[0].scrollIntoView();",[$ele]);

~~~

#### 9.移动到指定元素

> 移动的时候,鼠标不会真正移动,但实际上已移动,这个可以在haha2元素上写一个onmouseover事件进行监听即可测试。

~~~

$ele = $driver->findElement(WebDriverBy::id('haha2'));

$driver->getMouse()->mouseMove($ele->getCoordinates());

~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值