Lulu的自动化测试学习(二)

    技术2025-08-19  13

    web自动化测试:页面元素的定位

    id定位 driver.findElement(By.id(“id的值”)); name定位 driver.findElement(By.name(“name的值”)); css方式定位 driver.findElement(By.cssSelector(“css表达式”)); xpath定位 driver.findElement(By.xpath(“xpath表达式”)); class属性定位 driver.findElement(By.className(“class属性”));

    在自动化测试过程中, 测试程序通常的操作页面元素步骤

    找到Web的页面元素,并赋予到一个存储对象中 (WebElement)对存储页面元素的对象进行操作, 例如:点击链接,在输入框中输入字符等验证页面上的元素是否符合预期

    定位方法的选择

    当页面元素有id属性的时候,尽量使用id来定位,因为id定位是最高效的,每个id对应的元素是唯一的。cssSelector执行速度最快,也推荐使用。xpath的功能是最强悍的,webdriver会将整个页面的所有元素进行扫描以定位我们所需要的元素, 这是个非常费时的操作,所以尽量少用。

    id定位模拟(以Chorme浏览器为例)

    这里我采用Chrome浏览器开发者工具进行页面元素的定位点击开发者模式左上角的箭头即可快速定位页面元素点击搜索框,下方代码会自动定位到相应位置,可知搜索框对应id为’‘kw’’;同样地,对“百度一下”按钮进行定位后可得到它对应id为’‘su’’。进入eclipse完成测试代码 import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; /** * 通过页面元素的ID来查找元素是最为推荐的方式, * 一旦元素被赋予了唯一的ID属性., 我们做自动化测试的时候,很容易定位到元素. * 元素的ID被作为首选的识别属性, 因为是最快的识别策略. * * 以百度主页为例, 搜索框的HTML示例代码如下, 它的ID为kw * <input type="text" autocomplete="off" maxlength="100" id="kw" name="wd" class="s_ipt"> * "百度一下"搜索按钮元素的HTML示例代码如下, 它ID为su * <input type="submit" class="btn self-btn bg s_btn" id="su" value="百度一下"> * */ public class element_ID { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "src/chromedriver.exe"); ChromeDriver driver = new ChromeDriver(); driver.get("http://www.baidu.com"); //ID元素定位 WebElement searchBox = driver.findElement(By.id("kw")); searchBox.sendKeys(""); WebElement searchButton = driver.findElement(By.id("su")); searchButton.submit(); // driver.close(); } }

    程序运行之后,Chrome浏览器会自动打开,并进入百度页面,在百度的搜索框输入“”,并显示搜索结果。

    其他的页面元素定位方法类似,只要修改findElement语句中的By.xxx方法即可,可自行进行测试

    Processed: 0.016, SQL: 9