357 次浏览
Selenium web 测试自动化框架的最佳实践列在下面:- 使用动态等待,如隐式等待和显式等待,而不是在框架中使用 Thread.sleep 来处理应用程序中的同步问题。- 使用页面对象模型框架设计来将测试脚本与定位器分离。如果 Web 元素属性发生更改,则无需修改测试脚本,只需更改定位器即可。- 使用行为驱动开发框架。这允许敏捷团队中的所有成员参与产品开发。- 鼓励从非常早期的阶段开始测试,并定期进行…… 阅读更多
12K+ 次浏览
我们可以使用 Selenium webdriver 获取 webelement 的 html 源代码。我们可以获取 innerHTML 属性来获取 web 元素的源代码。innerHTML 是 webelement 的一个属性,它等于起始标签和结束标签之间存在的文本。为此使用 get_attribute 方法,并将 innerHTML 作为参数传递给该方法。语法 s = element.get_attribute('innerHTML') 我们可以借助 Javascript Executor 获取 webelement 的 html 源代码。我们将使用 execute_script 方法,并将参数 index.innerHTML 和要检索其 html 源代码的 webelement 传递给…… 阅读更多
9K+ 次浏览
我们可以使用 Selenium webdriver 点击隐藏的元素。隐藏的元素是指存在于 DOM 中但在页面上不可见的元素。大多数隐藏元素都是通过 CSS 属性 style="display:none;" 定义的。如果元素是表单标签的一部分,则可以通过将属性 type 设置为 hidden 值来隐藏它。Selenium 默认情况下无法处理隐藏元素,在使用它们时会抛出 ElementNotVisibleException 异常。Javascript Executor 用于处理页面上的隐藏元素。Selenium 使用 executeScript 方法运行 Javascript 命令。命令…… 阅读更多
2K+ 次浏览
我们可以使用 Selenium webdriver 从 frame 返回当前页面。frame 在 html 代码中用 或 标签定义。frame 用于将 HTML 文档嵌入另一个 HTML 文档中。Selenium 默认情况下可以访问主浏览器驱动程序。为了访问 frame 元素,驱动程序焦点必须从主浏览器窗口切换到 frame。要再次从 frame 返回当前页面,可以使用 switchTo().defaultContent() 方法。示例代码实现。import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; public class SwitchBackFrame{ public static ... 阅读更多
7K+ 次浏览
我们可以使用 Selenium webdriver 在定位器中使用正则表达式。这可以在我们使用 xpath 或 css 定位器识别元素时实现。让我们看一下元素在其 html 代码中的类。class 属性值为 gsc-input。在这里,使用 css 表达式,我们可以使用 * 并对 class 属性值执行部分匹配。css 值应为 input[class*='input']。这意味着子文本 input 存在于实际文本 gsc-input 中。我们也可以使用 ^ 并对类执行匹配。css 值应为…… 阅读更多
4K+ 次浏览
我们可以使用 Selenium webdriver 验证元素中是否存在属性。这借助 getAttribute 方法实现。在 html 文档中,每个元素都由其标签名及其属性及其值标识。要获取属性值,我们必须将元素属性作为参数传递给 getAttribute 方法。让我们看看元素的 html 代码,并获取其 src 属性的值。其 src 属性的值应为 /about/images/logo.png。示例代码实现。import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; public class AttributeVal{ ... 阅读更多
648 次浏览
我们可以使用 Selenium webdriver 查找元素及其文本。首先,我们必须使用任何定位器(如 id、classname、css 等)来识别元素。然后,要获取文本,我们必须借助 text 方法。语法 s = driver.find_element_by_css_selector("h4").text 这里 driver 是 webdriver 对象。find_element_by_css_selector 方法用于使用 css 定位器类型识别元素,并将定位器值作为参数传递给该方法。最后,text 方法用于获取元素的文本内容。让我们看看…… 阅读更多
我们可以使用 Selenium webdriver 关闭特定窗口。getWindowHandles 和 getWindowHandle 方法可用于处理子窗口。getWindowHandles 方法用于将所有打开的窗口句柄存储在 Set 数据结构中。getWindowHandle 方法用于将焦点浏览器窗口的窗口句柄存储起来。我们必须添加 import java.util.Set 和 import java.util.List 语句以在我们的代码中容纳 Set 数据结构。默认情况下,驱动程序对象只能访问父窗口的元素。为了将其焦点从父窗口切换到子窗口,我们将…… 阅读更多
10K+ 次浏览
我们可以使用 Selenium webdriver 中的 xpath 选择 iframe 内的元素。frame 在 html 代码中用 或 标签定义。frame 用于将 HTML 文档嵌入另一个 HTML 文档中。让我们看看 frame 的 html 代码。Selenium 默认情况下可以访问父浏览器驱动程序。为了访问 frame 内的内容,驱动程序焦点必须从主浏览器窗口切换到 frame。有多种方法可以将焦点切换到 frame:switchTo().frame(id) - 将 frame 的 id 或名称作为…… 阅读更多
14K+ 次浏览
我们可以使用Selenium webdriver向输入型网页元素设置值。我们可以借助sendKeys方法向输入字段输入文本。要输入的值作为参数传递给该方法。语法:driver.findElement(By.id("txtSearchText")).sendKeys("Selenium");我们还可以使用Selenium中的Javascript Executor执行诸如向编辑框输入文本之类的web操作。我们将使用executeScript方法并将参数index.value=''和webelement作为参数传递给该方法。语法:WebElement i = driver.findElement(By.id("id")); JavascriptExecutor j = (JavascriptExecutor)driver; j.executeScript("arguments[0].value='Selenium';", i);示例代码实现import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By; import java.util.concurrent.TimeUnit; public class SetValue{ public static void main(String[] ... 阅读更多