这是在腾讯云社区发布这一系列教程的最后一篇,总共100多篇,后续文章请移步:北京宏哥 的公众号进行阅读和学习,谢谢~ 1.简介 上一篇宏哥介绍了如何设计支持不同浏览器测试,宏哥的方法就是通过来切换配置文件设置的浏览器名称的值...但是由于很多页面,我们有些方法是相同的,例如:判断一个元素是否在页面显示,还有元素点击和输入操作,还有判断页面标题和页面地址等等,甚至,有些软件web不同页面有公共的元素。.../ protected BasePage(WebDriver driver) { BasePage.driver = driver; } /* * 在文本框内输入字符...Logger.Output(LogType.LogTypeName.ERROR, e.getMessage() + "."); } } /* * 在文本输入框执行清除操作...4.测试页面基类 4.1测试场景 宏哥就在这里用一个简单的测试场景:打开浏览器访问百度首页,然后在搜索框中输入“北京-宏哥”,最后点击“百度一下”按钮。
做自动化测试一定要注意页面状态的一致性 查找元素 findElement,在页面查找元素,返回值 WebElement 查找页面元素 driver.findElement(By.cssSelector...,返回值为 ListWebElement> ListWebElement> elements = driver.findElements(By.cssSelector("#hotsearch-content-wrapper...——sendKeys(“”) 这个方法可以在任意能输入文本的地方进行输入 driver.findElement(By.cssSelector("#kw")).sendKeys("今天天气"); Thread.sleep...[[屏幕录制 2024-11-16 165917.mp4]] 清除文本内容——clear() 输入文本后,又想换一个新的关键词,这里就需要用到 clear() 若想在一个场景下更换多个关键词,需要将前一个关键词清楚掉...优点:写法简单,好理解,直接阻塞程序 缺点:极大的增加了自动化的执行时间 100 条测试用例,每个用例添加强制等待平均时间 3 s 总:1000 * 3 = 3000s = 50min 理想的情况下
2.项目实战 在这里宏哥以百度首页登录的例子,如果用POM实现,在测试脚本中实际代码就几行。...2.1代码设计 1.先新建一个pageObjects包,然后在pageObjects包新建一个百度主页类:BaiduHomePage,代码设计如下图所示: 2.再次新建一个testSuites包,然后在...login_link; // 输入用户名框 @FindBy(xpath="//*[@id='TANGRAM__PSP_11__userName']") WebElement...2]") WebElement inputBox_password; // 登录按钮 @FindBy(id = "TANGRAM__PSP_11__submit") WebElement...} 2.3运行代码 1.运行代码,右键Run AS->TestNG Suite,控制台输出,如下图所示: 2.运行代码后电脑端的浏览器的动作,如下小视频所示: 3.非POM实现 下面跟随宏哥看一下不用
(webElement).click().perform(); } /** * 先清除输入框的内容,再往指定元素中输入字符 * * @param key...)).perform(); } /** * 先清除输入框的内容,再往指定元素中输入字符 * * @param xpath 元素的xpath *...(显示、隐式、流畅等待都有小概率操作失败) this.sleep(500L); webElement.clear(); this.actions.sendKeys...(webElement, this.getKey(key)).perform(); } /** * 先清除输入框的内容,再往指定元素中输入字符 * * @...} /** * 先清除输入框的内容,再往指定元素中输入字符,再按Enter键 * * @param xpath 元素的xpath * @param
操作元素方法 在讲述完定位对象(locate elements)之后我们需要对该已定位对象进行操作,通常所有的操作与页面交互都将通过WebElement接口,常见的操作元素方法如下:...clear 清除元素的内容 send_keys 模拟按键输入 click 点击元素 submit 提交表单 举例自动访问FireFox浏览器自动登录163邮箱...()清除输入框默认内容,如“请输入密码”等提示,通过send_keys("**")输入正确的用户名和密码,最后通过click()点击登录按钮或send_keys(Keys.RETURN)相当于回车登录,...WebElement接口获取值 通过WebElement接口可以获取常用的值,这些值同样非常重要。...perform() 在通过调用该函数执行ActionChains中存储行为 举例如下图所示,获取通过鼠标右键另存为百度图片logo。
它提供了一组API,可以通过编程方式控制浏览器,并模拟用户的交互行为,例如点击、输入文本和导航等。...("--headless"); // 解决一些系统的图形化渲染问题 options.addArguments("--disable-gpu"); // 在某些系统上需要添加此参数...例如向输入框输入文本。 clear():清除该元素的内容。 getTagName():获取该元素的标签名称。 getAttribute(String name):获取该元素指定属性的值。...getCssValue(String propertyName):获取该元素指定CSS属性的值。...显示等待可以根据不同的条件进行等待,例如元素的可见性、可点击性、文本内容、属性值等。显示等待可以通过ExpectedConditions类来实现。
1 基本操作 元素的基本操作有很多,常用的有三个:click(点击)、clear(清空)、sendkeys(输入内容)、submit(提交)。...clear():如果此元素是文本输入元素(INPUT型元素和TEXTAREA元素),则将清除该值。...首先,从Select类的有参构造函数可以看出,在初始化一个select时,需要WebElement作为入参。接下来,我们看看,Select类提供了哪些函数吧。...在selenium中,是借助switchTo()函数完成的。...返回【UI自动化测试页面】,在输入框输入【原页面】。 页面代码-window-1: <!
baidu=driver.findElement(By.linkText(“baidu”)); 输入框传值 输入框(text field or textarea) 找到输入框元素: WebElement...element = driver.findElement(By.id(“passwd-id”)); 在输入框中输入内容: element.sendKeys(“test”); 将输入框清空: element.clear...: select.deselectAll(); select.deselectByValue(“name”); select.deselectByVisibleText(“姓名”); 或者获取选择项的值:...sex=driver.findElement(By.id(“sex”)); 选择某个单选项: sex.click(); 清空某个单选项: sex.clear(); 判断某个单选项是否已经被选择: sex.isSelected...(); area .clear(); area .isSelected(); area .isEnabled(); 按钮 按钮(button)找到按钮元素: WebElement saveButton
WebElement element = webDriver.findElement(By.xpath("//*[@id=\"kw\"]")); //输入"软件测试(要搜索的内容...操作测试对象 操作 说明 click 点击对象 send_keys 在对象上模拟按键输入 clear 清除对象输入的文本内容 submit 提交 text 用于获取元素的文本信息 getAttribute...如下:(此时submit操作的不是from标签下的元素) 一般情况下,我们就使用click....等待时间:隐式等待只需设置一次,并适用于所有元素的定位操作;显示等待可以根据不同情况设定不同的等待时间。...handle; } webDriver.switchTo().window(target_handle); sleep(3000); //在输入框中搜索新闻联播
返回值是字符串。.../label/input0交互通过元素定位后,他的返回值为org.openqa.selenium.WebElement。自带一些基础交互方法。...(by); // 清除元素中的现有文本 element.clear(); // 输入新文本 element.sendKeys(text); } catch (NoSuchElementException...名")StaleElementReferenceException这种情况比较难发生。...说明定位元素时他存在,但由于某些处理,比如画面刷新,点击时不存在了。加大容错高加载速度的页面中,这些元素基本不会有什么问题。
浏览器首先会跳转到百度,然后在搜索框中输入Python,接着跳转到搜索结果页,如下图所示。 ?...比较常见的用法有:输入文字时用send_keys()方法,清空文字时用clear()方法,点击按钮时用click()方法。...,然后用send_keys()方法输入iPhone文字,等待一秒后用clear()方法清空输入框,再次调用send_keys()方法输入iPad文字,之后再用find_element_by_class_name...延时等待 在Selenium中,get()方法会在网页框架加载结束后结束执行,此时如果获取page_source,可能并不是浏览器完全加载完成的页面,如果某些页面有额外的Ajax请求,我们在网页源代码中也不一定能成功获取到...运行代码,在网速较佳的情况下是可以成功加载出来的。
这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用Ajax)如果需要更新内容,必须重载整个网页页面。因为传统的在传输数据格式方面,使用的是XML语法。...操作表单元素: 操作输入框:分为两步。 第一步:找到这个元素。...方法可以清除输入框中的内容。...示例代码如下: inputTag.clear() 操作checkbox: 因为要选中checkbox标签,在网页中是通过鼠标点击的。...直接调用click函数就可以了 inputTag = driver.find_element_by_id('su') inputTag.click() 行为链: 有时候在页面中的操作可能要有很多步,那么这时候可以使用鼠标行为链类
它还声明一个构造函数,该构造WebDriver函数采用工厂使用的用于初始化字段的参数: public class TodoMvcPage implements TodoMvc { private...= "clear-completed") private WebElement clearCompleted; public TodoMvcPage(WebDriver driver...不是在对象初始化期间而是在第一个元素查找期间引发未找到元素的潜在异常。Selenium使用代理模式来实现所描述的行为。 @CacheLookup 在某些情况下,每次访问带注释的字段时都不需要查找元素。...在这种情况下,我们可以使用@CacheLookup注释。...在示例中,输入字段在页面上没有更改,因此可以缓存查找结果: @FindBy(className = "new-todo") @CacheLookup private WebElement newTodoInput
这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用Ajax)如果需要更新内容,必须重载整个网页页面。因为传统的在传输数据格式方面,使用的是XML语法。...操作表单元素: 操作输入框:分为两步。第一步:找到这个元素。第二步:使用send_keys(value),将数据填充进去。...示例代码如下: inputTag = driver.find_element_by_id(‘kw’) inputTag.send_keys(‘python’) 使用clear方法可以清除输入框中的内容。...示例代码如下: inputTag.clear() 操作checkbox:因为要选中checkbox标签,在网页中是通过鼠标点击的。...直接调用click函数就可以了。
q=cheese">cheese 代码: WebElement cheese = driver.findElement(By.linkText("cheese")); 控件操作 输入框 WebElement...element = driver.findElement(By.id("passwd-id")); //在输入框中输入内容: element.sendKeys(“test”); //将输入框清空:...element.clear(); //获取输入框的文本内容: element.getText(); 单选框 WebElement radio = driver.findElement(By.id("...accept() 相当于点击它的"确认" dismiss() 相当于点击"取消"或者叉掉对话框 sendKeys() 输入值 Alert alert = dr.switchTo().alert(); String...默认情况下,WebDriverWait每500毫秒调用一次ExpectedCondition,直到有成功的返回,当然如果超过设定的值还没有成功的返回,将抛出异常。
clear 清除对象输入的文本内容 submit 提交 text 用于获取元素的文本信息 private static void test1() throws InterruptedException...clear webDriver.findElement(By.id("kw")).clear(); //点击元素 click webDriver.findElement...(webElement); select.selectByIndex(2); //下标从0开始 } 10.切换窗口句柄 我们在页面操作过程中有时候点击某个链接会弹出新的窗口, 这时就需要主机切换到新打开的窗口上进行操作...【注意:这是一个在第二个页面的输入框内搜索内容,如果不调用webDriver.getWindowHandle()方法的话,代码就会报错】 private static void test8() {...WebDriver提供了截图函数getScreenshotAs()来截取当前窗口; private static void test9() throws IOException, InterruptedException
浏览器首先会跳转到百度,然后在搜索框中输入 Python,接着跳转到搜索结果页。 此时在控制台的输出结果如下: https://www.baidu.com/s?...比较常见的用法有:输入文字时用 send_keys 方法,清空文字时用 clear 方法,点击按钮时用 click 方法。...,然后用 send_keys() 方法输入 iPhone 文字,等待一秒后用 clear() 方法清空输入框,再次调用 send_keys() 方法输入 iPad 文字,之后再用 find_element_by_class_name...延时等待 在 Selenium 中,get() 方法会在网页框架加载结束后结束执行,此时如果获取 page_source,可能并不是浏览器完全加载完成的页面,如果某些页面有额外的 Ajax 请求,我们在网页源代码中也不一定能成功获取到...运行代码,在网速较佳的情况下是可以成功加载出来的。
功能及方法 通过WebElement可以实现与网站页面元素的交互,包括文本框、文本域、按钮、单选框、多选框、表格、行、列和div等。...clear() 清除文本框或文本域的内容 click() 点击元素 get_attribute(name) 获取元素的属性值,name:要获取的属性名称 is_displayed() 检查元素对于用户是否可见...is_enabled() 检查元素是否可用 is_selected() 检查元素是否被选中,主要用于单选框和复选框 send_keys(value) 输入文本,value是要输入的值 submit()...、文本框、复选框、单选按钮 通过WebElement实现与各种HTML控件的自动化交互,例如在一个文本框输入文本、单击按钮、选择单选框或者复选框、获取元素的文本及属性值等。...LoginName') 20 21 register_btn = self.driver.find_element_by_id('submitBtn') 22 23 # 检查字段允许的最大输入字符与最小输入字符是否与预期一致
一般在初始化driver时也会指定automationName的值为XCUITest desired_caps['automationName']='XCUITest' 元素定位工具 Android...,如:ClearEmail label:元素标记;绝大多数情况下,与 name 作用一致 enabled:元素是否可点击,一般值为true或者false visible;元素是否可见,一般值为true或者...false 元素定位策略 ios_predicate 在 iOS 的 UI 自动化中,使用原生支持的Predicate定位方式是最好,可支持元素的单个属性和多个属性定位,属性值还可以使用精确和模糊匹配,...class_name唯一的情况并不多,一般情况下用不上。...,使用clear()方法来清除文本框内容。
1,accessibility_id 替代以前的name定位方式,在 iOS 上,主要使用元素的label或name(两个属性的值都一样)属性进行定位,如该属性为空,也是不能使用该属性。...class_name唯一的情况并不多,一般情况下用不上。...driver 对象,driver 对象封装了所有的设备操作 #self.driver = webdriver.Remote(uri,desired_caps) #设定等待时间,系统函数...check_shouye() xpath定位方式在 XCUITest 底层原生不支持,由 appium 额外支持的,定位速度很慢,而且有时候定位不到元素的情况存在。...` :rtype: `appium.webdriver.webelement.WebElement` """ return self.find_element
领取专属 10元无门槛券
手把手带您无忧上云