提交 c1c4f675 编写于 作者: W wizardforcel

2020-06-24 14:37:39

上级 40449b06
...@@ -61,7 +61,7 @@ import org.openqa.selenium.support.ui.Select; ...@@ -61,7 +61,7 @@ import org.openqa.selenium.support.ui.Select;
Select languages = new Select(driver.findElement(By.id("element_ID"))); Select languages = new Select(driver.findElement(By.id("element_ID")));
``` ```
可以使用前面讨论的任何定位策略(https://javabeginnerstutorial.com/selenium/9j-webdriver-locating-elements-1/)来定位下拉列表。 可以使用前面讨论的任何定位策略(<https://javabeginnerstutorial.com/selenium/9j-webdriver-locating-elements-1/>)来定位下拉列表。
**步骤 3**:找到下拉 Web 元素并创建`Select`类的对象后,就可以访问其所有方法来执行选择和取消选择。 **步骤 3**:找到下拉 Web 元素并创建`Select`类的对象后,就可以访问其所有方法来执行选择和取消选择。
...@@ -81,7 +81,7 @@ Select languages = new Select(driver.findElement(By.id("element_ID"))); ...@@ -81,7 +81,7 @@ Select languages = new Select(driver.findElement(By.id("element_ID")));
### 1\. `selectByVisibleText(String arg0)`和`deselectByVisibleText(String arg0)` ### 1\. `selectByVisibleText(String arg0)`和`deselectByVisibleText(String arg0)`
这些方法选择和取消选择一个显示的文本与传递的 String 参数完全匹配的选项。 这些方法选择和取消选择一个显示的文本与传递的`String`参数完全匹配的选项。
**语法**`selectObject.selectByVisibleText("displayed_option_text")` **语法**`selectObject.selectByVisibleText("displayed_option_text")`
...@@ -106,17 +106,17 @@ languages.selectByVisibleText("JavaScript"); ...@@ -106,17 +106,17 @@ languages.selectByVisibleText("JavaScript");
languages.deselectByVisibleText("JavaScript"); languages.deselectByVisibleText("JavaScript");
``` ```
### 2\. selectByValue(String arg0)和 deselectByValue(String arg0) ### 2\. `selectByValue(String arg0)`和`deselectByValue(String arg0_`
这些方法选择和取消选择其 value 属性与传递的 String 参数匹配的选项。 这些方法选择和取消选择其`value`属性与传递的`String`参数匹配的选项。
**语法**`selectObject.selectByValue("value_attribute_text")` **语法**`selectObject.selectByValue("value_attribute_text")`
`selectObject.deselectByValue("value_attribute_text")` `selectObject.deselectByValue("value_attribute_text")`
**示例**:让我们从 Selenium Tool Suite 多选选项中选择“Selenium RC”。 **示例**:让我们从 Selenium 工具套件多选选项中选择“Selenium RC”。
右键单击所需的 Web 元素,然后选择 inspect 元素,将给出相应的 HTML 代码,如下所示, 右键单击所需的 Web 元素,然后选择检视元素,将给出相应的 HTML 代码,如下所示,
```java ```java
<select id="selenium_suite" multiple="multiple" name="selenium_suite"> <select id="selenium_suite" multiple="multiple" name="selenium_suite">
...@@ -125,7 +125,7 @@ languages.deselectByVisibleText("JavaScript"); ...@@ -125,7 +125,7 @@ languages.deselectByVisibleText("JavaScript");
<option value="RC">Selenium RC</option> <option value="RC">Selenium RC</option>
``` ```
“值”属性的值“RC”将作为参数传递给 selectByValue 方法。 `value`属性的值“`RC`”将作为参数传递给`selectByValue`方法。
*Code:* *Code:*
...@@ -133,15 +133,15 @@ languages.deselectByVisibleText("JavaScript"); ...@@ -133,15 +133,15 @@ languages.deselectByVisibleText("JavaScript");
multiSelect.selectByValue("RC"); multiSelect.selectByValue("RC");
``` ```
### 3\. selectByIndex(int arg0)和 deselectByIndex(int arg0) ### 3\. `selectByIndex(int arg0)`和`deselectByIndex(int arg0)`
这些方法选择和取消选择指定索引值处的选项。 重要的是要注意,索引值始终以零开头。 这些方法选择和取消选择指定索引值处的选项。 重要的是要注意,索引值始终以零开头。
**语法**selectObject.selectByIndex(“option_index”);* **语法**`selectObject.selectByIndex("option_index");`
*selectObject.deselectByIndex(“option_index”);* `selectObject.deselectByIndex("option_index");`
**示例*** 让我们从 Selenium Tool Suite 多选选项中取消选择“Selenium RC”。 **示例**让我们从 Selenium 工具腰间多选选项中取消选择“Selenium RC”。
基于 HTML 代码,Selenium IDE 的索引为 0,Selenium WebDriver 的索引为 1,Selenium RC 的索引为 2。 基于 HTML 代码,Selenium IDE 的索引为 0,Selenium WebDriver 的索引为 1,Selenium RC 的索引为 2。
...@@ -151,7 +151,7 @@ multiSelect.selectByValue("RC"); ...@@ -151,7 +151,7 @@ multiSelect.selectByValue("RC");
multiSelect.deselectByIndex(2); multiSelect.deselectByIndex(2);
``` ```
### 4\. deselectAll() ### 4\. `deselectAll()`
此方法清除选择。 没有传递参数。 此方法清除选择。 没有传递参数。
...@@ -161,7 +161,7 @@ multiSelect.deselectByIndex(2); ...@@ -161,7 +161,7 @@ multiSelect.deselectByIndex(2);
**语法**`selectObject.deselectAll()` **语法**`selectObject.deselectAll()`
**示例**:让我们取消选择在 Selenium Tool Suite 多重选择框中选择的所有选项。 **示例**:让我们取消选择在 Selenium 工具套件多重选择框中选择的所有选项。
*Code:* *Code:*
...@@ -169,13 +169,13 @@ multiSelect.deselectByIndex(2); ...@@ -169,13 +169,13 @@ multiSelect.deselectByIndex(2);
multiSelect.deselectAll(); multiSelect.deselectAll();
``` ```
### 5\. isMultiple() ### 5\. `isMultiple()`
当您想知道 Web 元素是否允许多选时,此方法很方便。 它返回 true 或 false。 没有传递参数。 当您想知道 Web 元素是否允许多选时,此方法很方便。 它返回`true``false`。 没有传递参数。
**语法**`selectObject.isMultiple()` **语法**`selectObject.isMultiple()`
### 6\. getOptions() ### 6\. `getOptions()`
此方法作为 Web 元素返回在多重选择框中可用的所有选项的列表。 此方法作为 Web 元素返回在多重选择框中可用的所有选项的列表。
...@@ -187,7 +187,7 @@ multiSelect.deselectAll(); ...@@ -187,7 +187,7 @@ multiSelect.deselectAll();
List<WebElement> allOptions = multiSelect.getOptions(); List<WebElement> allOptions = multiSelect.getOptions();
``` ```
### 7\. getFirstSelectedOption() ### 7\. `getFirstSelectedOption()`
此方法在多重选择框中返回第一个选定的选项。 如果在仅允许单个选择的下拉菜单中使用此选项,则将所选选项作为 Web 元素返回。 此方法在多重选择框中返回第一个选定的选项。 如果在仅允许单个选择的下拉菜单中使用此选项,则将所选选项作为 Web 元素返回。
...@@ -195,7 +195,7 @@ List<WebElement> allOptions = multiSelect.getOptions(); ...@@ -195,7 +195,7 @@ List<WebElement> allOptions = multiSelect.getOptions();
这将返回所选的选项文本。 这将返回所选的选项文本。
### 8\. getAllSelectedOptions() ### 8\. `getAllSelectedOptions()`
此方法返回作为多选框的一部分而被选择为 Web 元素的所有选项的列表。 此方法返回作为多选框的一部分而被选择为 Web 元素的所有选项的列表。
...@@ -216,12 +216,12 @@ List<WebElement> allSelectedOptions = multiSelect.getAllSelectedOptions(); ...@@ -216,12 +216,12 @@ List<WebElement> allSelectedOptions = multiSelect.getAllSelectedOptions();
1. 打开 Firefox 浏览器 1. 打开 Firefox 浏览器
2. 导航到[演示站点](https://chandanachaitanya.github.io/selenium-practice-site/) 2. 导航到[演示站点](https://chandanachaitanya.github.io/selenium-practice-site/)
3. 使用 ID 找到“编程语言”下拉菜单 3. 使用 ID 找到“编程语言”下拉菜单
4. Select 类创建一个对象 4.`Select`类创建一个对象
5. 通过可见的文本选择“JavaScript”语言 5. 通过可见的文本选择“JavaScript”语言
6. 将选定的选项打印到控制台 6. 将选定的选项打印到控制台
7. 检查“编程语言”下拉列表是否支持多项选择并将相应消息打印到控制台 7. 检查“编程语言”下拉列表是否支持多项选择并将相应消息打印到控制台
8. 使用名称找到“Selenium Tool Suite”多选框 8. 使用名称找到“Selenium Tool Suite”多选框
9. 使用多选 Web 元素创建 Select 类的实例 9. 使用多选 Web 元素创建`Select`类的实例
10. 根据其值选择“Selenium RC”和“优势” 10. 根据其值选择“Selenium RC”和“优势”
11. 通过索引取消选择“Selenium RC” 11. 通过索引取消选择“Selenium RC”
12. 通过可见的文本选择“Selenium WebDriver” 12. 通过可见的文本选择“Selenium WebDriver”
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
**例如** **例如**
让我们尝试访问嵌套表的第一行,并将文本“Inner Row 1”打印到控制台。 由于我们不在这里使用 XPath,因此它将变得有些复杂。 但是一旦您掌握了如何以一个嵌套级别定位一个单元,然后访问更深层次的单元就轻松了! 第一步是使用标签名称“table”查找主表。 可以使用任何定位策略,但通常表的行和列没有 ID 或名称。 因此,访问它们的最佳方法是使用它们相应的标签名称。 第二步是使用获得的 Web 元素(表),找到嵌套表。 最后一步是,使用嵌套表 web 元素,找到第一行并获取其文本! 让我们尝试访问嵌套表的第一行,并将文本“`Inner Row 1`”打印到控制台。 由于我们不在这里使用 XPath,因此它将变得有些复杂。 但是一旦您掌握了如何以一个嵌套级别定位一个单元,然后访问更深层次的单元就轻松了! 第一步是使用标签名称“`table`”查找主表。 可以使用任何定位策略,但通常表的行和列没有 ID 或名称。 因此,访问它们的最佳方法是使用它们相应的标签名称。 第二步是使用获得的 Web 元素(表),找到嵌套表。 最后一步是,使用嵌套表 web 元素,找到第一行并获取其文本!
右键单击所需元素,然后选择检查元素,将给出相应的 HTML 代码段,如下所示, 右键单击所需元素,然后选择检查元素,将给出相应的 HTML 代码段,如下所示,
...@@ -46,7 +46,7 @@ System.out.println("Inner table first row text = " + innerRow1.getText()); ...@@ -46,7 +46,7 @@ System.out.println("Inner table first row text = " + innerRow1.getText());
## 方法 2:使用 XPath 处理表 ## 方法 2:使用 XPath 处理表
第一种方法需要使用三个 Web 元素来访问所需的单元格。 如果涉及许多嵌套级别,则用于定位元素的命令数量将增加。 为了减轻这种情况,我们有 XPath 可以拯救我们! “XPath”一词会响起吗? 如果不是这样,请参考 XPath 的[定位元素以简单的方式构造它](https://javabeginnerstutorial.com/selenium/9n-webdriver-locating-elements-4a/) 第一种方法需要使用三个 Web 元素来访问所需的单元格。 如果涉及许多嵌套级别,则用于定位元素的命令数量将增加。 为了减轻这种情况,我们有 XPath 可以拯救我们! “XPath”一词会响起吗? 如果不是这样,请参考 XPath 的[定位元素以简单的方式构造它](https://javabeginnerstutorial.com/selenium/9n-webdriver-locating-elements-4a/)
**例如** **例如**
...@@ -70,9 +70,9 @@ WebElement innerRow2 = driver.findElement(By.xpath("//table/tbody/tr[1]/td[2]/ta ...@@ -70,9 +70,9 @@ WebElement innerRow2 = driver.findElement(By.xpath("//table/tbody/tr[1]/td[2]/ta
3. 使用标签名称找到“练习表格” 3. 使用标签名称找到“练习表格”
4. 使用标签名称找到嵌套表 4. 使用标签名称找到嵌套表
5. 使用标签名称找到嵌套表的第一行 5. 使用标签名称找到嵌套表的第一行
6. 打印文本“Inner Row 1”进行控制台 6. 打印文本“`Inner Row 1`”进行控制台
7. 使用 XPath 找到嵌套表的第二行 7. 使用 XPath 找到嵌套表的第二行
8. 打印文本“Inner Row 2”进行控制台 8. 打印文本“`Inner Row 2`”进行控制台
此方案的 JUnit 代码是, 此方案的 JUnit 代码是,
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
## 步骤 1: ## 步骤 1:
使用其 ID “`BooksAuthorsTable`”找到“图书&作者” 表。 HTML 代码如下: 使用其 ID “`BooksAuthorsTable`”找到“图书&作者”表。 HTML 代码如下:
```java ```java
<table id="BooksAuthorsTable" class="table table-bordered"> <table id="BooksAuthorsTable" class="table table-bordered">
...@@ -22,7 +22,7 @@ WebElement BooksTable = driver.findElement(By.id("BooksAuthorsTable")); ...@@ -22,7 +22,7 @@ WebElement BooksTable = driver.findElement(By.id("BooksAuthorsTable"));
**使用 XPath 计算行和列的总数** **使用 XPath 计算行和列的总数**
让我们使用绝对 XPath 查找总行数。 请注意,XPath 以标签名称“tr”结尾。 size()方法给出使用 XPath 由 findElements()返回的元素数。 让我们使用绝对 XPath 查找总行数。 请注意,XPath 以标签名称“`tr`”结尾。 `size()`方法给出使用 XPath 由`findElements()`返回的元素数。
*Code:* *Code:*
...@@ -44,7 +44,7 @@ int colNum = driver.findElements(By.xpath("//table[@id='BooksAuthorsTable']/tbod ...@@ -44,7 +44,7 @@ int colNum = driver.findElements(By.xpath("//table[@id='BooksAuthorsTable']/tbod
**遍历表元素** **遍历表元素**
如果表的行和列号固定为,那么遍历每个表元素将变得非常容易。 可以使用两个 for()循环,一个用于行,另一个用于访问列值。 如果表的行和列号固定为,那么遍历每个表元素将变得非常容易。 可以使用两个`for()`循环,一个用于行,另一个用于访问列值。
*Code:* *Code:*
...@@ -60,19 +60,19 @@ xpath("//table[@id='BooksAuthorsTable']/tbody/tr[" + i +"]/td[" + j + "]")).getT ...@@ -60,19 +60,19 @@ xpath("//table[@id='BooksAuthorsTable']/tbody/tr[" + i +"]/td[" + j + "]")).getT
有一天,如果幸运的话,您可能会偶然发现一个表,该表在每次页面刷新时都会动态加载,因此行数通常会有所不同。 因此,每执行一次测试便要计算行数。 有一天,如果幸运的话,您可能会偶然发现一个表,该表在每次页面刷新时都会动态加载,因此行数通常会有所不同。 因此,每执行一次测试便要计算行数。
首先,让我们获取所有标签名称为“tr”的元素,并将它们放在名为“rowVals”的列表中。 首先,让我们获取所有标签名称为“”的元素,并将它们放在名为“`rowVals`”的列表中。
```java ```java
List<WebElement> rowVals = BooksTable.findElements(By.tagName("tr")); List<WebElement> rowVals = BooksTable.findElements(By.tagName("tr"));
``` ```
要从第一行获取标头元素,请找到所有标签名称为“th”的元素,并将其放在名为“colHeader”的列表中。 要从第一行获取标头元素,请找到所有标签名称为“`th`”的元素,并将其放在名为“`colHeader`”的列表中。
```java ```java
List<WebElement> colHeader = rowVals.get(0).findElements(By.tagName("th")); List<WebElement> colHeader = rowVals.get(0).findElements(By.tagName("th"));
``` ```
要将每个标题文本打印到控制台,请遍历 colHeader 列表中的标题值并使用 getText()方法。 要将每个标题文本打印到控制台,请遍历`colHeader`列表中的标题值并使用`getText()`方法。
```java ```java
for(int i=0; i<colHeader.size(); i++){ for(int i=0; i<colHeader.size(); i++){
...@@ -80,7 +80,7 @@ System.out.println(colHeader.get(i).getText()); ...@@ -80,7 +80,7 @@ System.out.println(colHeader.get(i).getText());
} }
``` ```
要将表内容打印到控制台,请遍历每一行。 对于每一行,遍历每一列,并使用相同的 getText()方法打印值。 要将表内容打印到控制台,请遍历每一行。 对于每一行,遍历每一列,并使用相同的`getText()`方法打印值。
```java ```java
for(int i=1; i<rowNum; i++){ for(int i=1; i<rowNum; i++){
...@@ -105,8 +105,8 @@ for(int j=0; j<colNum; j++){ ...@@ -105,8 +105,8 @@ for(int j=0; j<colNum; j++){
4. 使用绝对 XPath 获取总行数 4. 使用绝对 XPath 获取总行数
5. 使用相对 XPath 获取总列数 5. 使用相对 XPath 获取总列数
6. 将行数和列数打印到控制台 6. 将行数和列数打印到控制台
7. 通过标签名称“tr”获取所有行值 7. 通过标签名称“`tr`”获取所有行值
8. 通过标签名称“th”获取列表中的列标题值 8. 通过标签名称“`th`”获取列表中的列标题值
9. 循环浏览标题值并将其打印到控制台 9. 循环浏览标题值并将其打印到控制台
10. 遍历表内容(每一行的所有列)并获取其文本 10. 遍历表内容(每一行的所有列)并获取其文本
11. 将值打印到控制台 11. 将值打印到控制台
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
> 原文: [https://javabeginnerstutorial.com/selenium/9x-webdriver-handling-alerts-popup-box/](https://javabeginnerstutorial.com/selenium/9x-webdriver-handling-alerts-popup-box/) > 原文: [https://javabeginnerstutorial.com/selenium/9x-webdriver-handling-alerts-popup-box/](https://javabeginnerstutorial.com/selenium/9x-webdriver-handling-alerts-popup-box/)
嗨呀爱好者! 想知道为什么 Selenium WebDriver 中存在 Alert 界面? 好吧,我的朋友,对于您所寻找的信息,仅此帖子即可。 我们将讨论基本上属于三种类型的弹出框-警报框,确认框和提示框。 与往常一样,我们有[演示站点](https://chandanachaitanya.github.io/selenium-practice-site/)来说明这些概念。 嗨呀爱好者! 想知道为什么 Selenium WebDriver 中存在警报界面? 好吧,我的朋友,对于您所寻找的信息,仅此帖子即可。 我们将讨论基本上属于三种类型的弹出框-警报框,确认框和提示框。 与往常一样,我们有[演示站点](https://chandanachaitanya.github.io/selenium-practice-site/)来说明这些概念。
**注意:** **注意:**
...@@ -22,7 +22,7 @@ window.alert("This is a simple alert box! \nYou can't escape from me until you c ...@@ -22,7 +22,7 @@ window.alert("This is a simple alert box! \nYou can't escape from me until you c
## 2\. **确认框** ## 2\. **确认框**
确认框为用户提供了两个选项,以验证/接受或关闭某些内容。 用户必须单击“确定”或“取消”才能继续。 确认弹出框返回布尔值。 当用户点击“确定”时返回 true,而当点击“取消”时返回 false 确认框为用户提供了两个选项,以验证/接受或关闭某些内容。 用户必须单击“确定”或“取消”才能继续。 确认弹出框返回布尔值。 当用户点击“确定”时返回`true`,而当点击“取消”时返回`false`
JavaScript code: JavaScript code:
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
每当实例化一个新的 WebDriver 对象时,就会向每个打开的唯一窗口分配一个唯一的字母数字 ID。 这个独特的 ID 被称为“窗口句柄”- 这是 *Selenium Ville* 拥挤的街道上的另一个新名词。 因此,使用这些唯一的 ID,我们可以轻松地在窗口之间切换控件并执行所需的活动。 每当实例化一个新的 WebDriver 对象时,就会向每个打开的唯一窗口分配一个唯一的字母数字 ID。 这个独特的 ID 被称为“窗口句柄”- 这是 *Selenium Ville* 拥挤的街道上的另一个新名词。 因此,使用这些唯一的 ID,我们可以轻松地在窗口之间切换控件并执行所需的活动。
1.字符串 getWindowHandle() 1\. `String getWindowHandle()`
此方法用于获取当前窗口的窗口句柄。 此方法用于获取当前窗口的窗口句柄。
...@@ -17,9 +17,9 @@ ...@@ -17,9 +17,9 @@
String parentWinHandle = driver.getWindowHandle(); String parentWinHandle = driver.getWindowHandle();
``` ```
2.设置<字符串> getWindowHandles() 2\. `Set<String> getWindowHandles()`
此方法用于获取 Set 中所有打开的窗口的窗口句柄。 此方法用于获取`Set`中所有打开的窗口的窗口句柄。
*语法* *语法*
...@@ -28,8 +28,8 @@ String parentWinHandle = driver.getWindowHandle(); ...@@ -28,8 +28,8 @@ String parentWinHandle = driver.getWindowHandle();
Set<String> winHandles = driver.getWindowHandles(); Set<String> winHandles = driver.getWindowHandles();
``` ```
可以使用分配给每个打开的窗口的唯一句柄的引用,使用相同的 switchTo()方法从一个窗口切换到另一窗口。 为了更好地了解 switchTo(),请单击此处的[](https://javabeginnerstutorial.com/selenium/9x-webdriver-handling-alerts-popup-box/) 可以使用分配给每个打开的窗口的唯一句柄的引用,使用相同的`switchTo()`方法从一个窗口切换到另一窗口。 为了更好地了解`switchTo()`[请单击此处](https://javabeginnerstutorial.com/selenium/9x-webdriver-handling-alerts-popup-box/)
## 场景 ## 场景
让我们看一个实现这些方法的测试案例,以更深入地了解这些概念, 让我们看一个实现这些方法的测试案例,以更深入地了解这些概念,
...@@ -126,7 +126,7 @@ driver.getTitle()); ...@@ -126,7 +126,7 @@ driver.getTitle());
代码是不言自明的,因为同时提供了注释。 代码是不言自明的,因为同时提供了注释。
Eclipse IDE 中-> JUnit 窗格->绿色条显示测试用例已成功执行。 控制台窗口显示没有任何错误。 它还按预期显示所有打印的消息。 “Eclipse IDE 中 -> JUnit 窗格 -> 绿色条”显示测试用例已成功执行。 控制台窗口显示没有任何错误。 它还按预期显示所有打印的消息。
![multiple windows eclipse output](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20819%20391'%3E%3C/svg%3E) ![multiple windows eclipse output](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20819%20391'%3E%3C/svg%3E)
......
...@@ -97,8 +97,6 @@ public class WindowMaximize { ...@@ -97,8 +97,6 @@ public class WindowMaximize {
清晰的注释使代码不言自明。 清晰的注释使代码不言自明。
在 Eclipse IDE 中-> JUnit 窗格->绿色条显示测试用例已成功执行。 控制台窗口显示没有任何错误。 它还按预期显示所有打印的消息。 在“Eclipse IDE 中 -> JUnit 窗格 -> 绿色条”显示测试用例已成功执行。 控制台窗口显示没有任何错误。 它还按预期显示所有打印的消息。
![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20819%20391'%3E%3C/svg%3E)
<noscript><img alt="" class="alignnone size-full wp-image-12549" height="391" src="img/8747d9f868b65e6dad7be604914dd691.png" width="819"/><p>如有任何疑问,请不要在评论部分大喊大叫!</p><p>我很快会在另一篇文章中再见。 祝你有美好的一天!</p><div class="sticky-nav" style="font-size: 15px;"><div class="sticky-nav-image"></div><div class="sticky-nav-holder"><div class="sticky-nav_item"><h6 class="heading-sm">下一篇文章</h6></div><h5 class="sticky-nav_heading " style="font-size: 15px;"><a href="https://javabeginnerstutorial.com/selenium/9aa-webdriver-executing-javascript-code/" title="9aa. WebDriver – Executing JavaScript code"> 9aa。 WebDriver – 执行 JavaScript 代码</a></h5></div></div> </body> </html></noscript> <noscript><img alt="" class="alignnone size-full wp-image-12549" height="391" src="img/8747d9f868b65e6dad7be604914dd691.png" width="819"/><p>如有任何疑问,请不要在评论部分大喊大叫!</p><p>我很快会在另一篇文章中再见。 祝你有美好的一天!</p><div class="sticky-nav" style="font-size: 15px;"><div class="sticky-nav-image"></div><div class="sticky-nav-holder"><div class="sticky-nav_item"><h6 class="heading-sm">下一篇文章</h6></div><h5 class="sticky-nav_heading " style="font-size: 15px;"><a href="https://javabeginnerstutorial.com/selenium/9aa-webdriver-executing-javascript-code/" title="9aa. WebDriver – Executing JavaScript code"> 9aa。 WebDriver – 执行 JavaScript 代码</a></h5></div></div> </body> </html></noscript>
\ No newline at end of file
...@@ -2,27 +2,27 @@ ...@@ -2,27 +2,27 @@
> 原文: [https://javabeginnerstutorial.com/selenium/9bb-webdriver-actions-class/](https://javabeginnerstutorial.com/selenium/9bb-webdriver-actions-class/) > 原文: [https://javabeginnerstutorial.com/selenium/9bb-webdriver-actions-class/](https://javabeginnerstutorial.com/selenium/9bb-webdriver-actions-class/)
灯光,摄像头,动作! 是的,今天所有有关动作的内容。 哦,我不是在谈论您在电影中观看的那些战斗顺序,而是在谈论键盘和鼠标的动作。 Selenium WebDriver 提供了一个面向用户的 API,用于执行复杂的用户手势。 我们到处都希望自动化! 因此,除了直接使用键盘和鼠标,我们还可以使用 Actions 类来执行基本的`click``sendKeys`和复杂的操作,例如`dragAndDrop`等。 灯光,摄像头,动作! 是的,今天所有有关动作的内容。 哦,我不是在谈论您在电影中观看的那些战斗顺序,而是在谈论键盘和鼠标的动作。 Selenium WebDriver 提供了一个面向用户的 API,用于执行复杂的用户手势。 我们到处都希望自动化! 因此,除了直接使用键盘和鼠标,我们还可以使用`Actions`类来执行基本的`click``sendKeys`和复杂的操作,例如`dragAndDrop`等。
## 一些可用的键盘和鼠标方法是, ## 一些可用的键盘和鼠标方法是,
### 1.单击(WebElement 目标) ### 1\. `click(WebElement target)`
参数:`target` – 要单击的元素。 参数:`target` – 要单击的元素。
说明:单击给定目标的中间。 说明:单击给定目标的中间。
### 2\. clickAndHold() ### 2\.` clickAndHold()`
说明:单击当前鼠标位置不会释放。 说明:单击当前鼠标位置不会释放。
### 3\. doubleClick(WebElement 目标) ### 3\. `doubleClick(WebElement target)`
参数:`target` – 要点击的元素。 参数:`target` – 要点击的元素。
说明:在给定目标元素的中间双击。 等效于:`Actions.moveToElement(element).doubleClick();` 说明:在给定目标元素的中间双击。 等效于:`Actions.moveToElement(element).doubleClick();`
### 4\. dragAndDrop(WebElement 源,WebElement 目标) ### 4\. `dragAndDrop(WebElement src, WebElement dest)`
参数: 参数:
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
说明:在源元素的位置单击并按住,移至目标元素的位置,然后释放鼠标。 说明:在源元素的位置单击并按住,移至目标元素的位置,然后释放鼠标。
### 5\. dragAndDropBy(WebElement 源,int xOffset,int yOffset) ### 5\. `dragAndDropBy(WebElement src, int xOffset, int yOffset)`
参数: 参数:
...@@ -42,9 +42,9 @@ ...@@ -42,9 +42,9 @@
`yOffset` - 垂直移动偏移。 `yOffset` - 垂直移动偏移。
说明:在源元素的位置单击并按住,在 x 轴上移动给定的 xOffset,在 y 轴上移动给定的 yOffset,然后释放鼠标。 说明:在源元素的位置单击并按住,在 x 轴上移动给定的`xOffset`,在 y 轴上移动给定的`yOffset`,然后释放鼠标。
### 6\. keyDown(java.lang.CharSequencemodifier_key) ### 6\. `keyDown(java.lang.CharSequencemodifier_key)`
参数: 参数:
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
说明:执行修改键,但不释放键。 随后的交互可以假定按键被按下。 请注意,修饰键永远不会隐式释放-必须调用`keyUp(theKey)``sendKeys(Keys.NULL)`才能释放修饰键。 说明:执行修改键,但不释放键。 随后的交互可以假定按键被按下。 请注意,修饰键永远不会隐式释放-必须调用`keyUp(theKey)``sendKeys(Keys.NULL)`才能释放修饰键。
### 7\. moveByOffset(int xOffset,intyOffset) ### 7\. `moveByOffset(int xOffset, int yOffset)`
参数: 参数:
...@@ -60,9 +60,9 @@ ...@@ -60,9 +60,9 @@
`xOffset` - 垂直偏移。 负值表示向上移动鼠标。 `xOffset` - 垂直偏移。 负值表示向上移动鼠标。
说明:将鼠标从其当前位置(或 0,0)移动 x 轴上的给定 xOffset 和 y 轴上的 yOffset 说明:将鼠标从其当前位置(或`0, 0`)移动 x 轴上的给定`xOffset`和 y 轴上的`yOffset`
### 8\. moveToElement(WebElement 目标) ### 8\. `moveToElement(WebElement target)`
参数: 参数:
...@@ -70,11 +70,11 @@ ...@@ -70,11 +70,11 @@
说明:将鼠标移到目标元素的中间。 说明:将鼠标移到目标元素的中间。
### 9\. perform() ### 9\. `perform()`
描述:执行或执行所有动作。 描述:执行或执行所有动作。
### 10\. release() ### 10\. `release()`
说明:在当前鼠标位置释放按下的鼠标左键。 说明:在当前鼠标位置释放按下的鼠标左键。
...@@ -86,10 +86,10 @@ ...@@ -86,10 +86,10 @@
1. 开启 Chrome 浏览器 1. 开启 Chrome 浏览器
2. 导航到[演示站点](https://chandanachaitanya.github.io/selenium-practice-site/) 2. 导航到[演示站点](https://chandanachaitanya.github.io/selenium-practice-site/)
3. 使用 Actions 类执行以下键盘和鼠标操作, 3. 使用`Actions`类执行以下键盘和鼠标操作,
1. 找到并点击“自行车”复选框 1. 找到并点击“自行车”复选框
2. 找到文本“消息”,然后双击以突出显示它 2. 找到文本“消息”,然后双击以突出显示它
3. 在大写文本框中输入“hi there 3. 在大写文本框中输入“`hi there`
4.`click()`从第一位置拖放到可排序列表的第三位置 4.`click()`从第一位置拖放到可排序列表的第三位置
4. 在 Chrome 浏览器中验证输出 4. 在 Chrome 浏览器中验证输出
5. 验证 Eclipse IDE 控制台输出屏幕上是否有任何已打印的消息,并验证 JUnit 窗格是否成功 5. 验证 Eclipse IDE 控制台输出屏幕上是否有任何已打印的消息,并验证 JUnit 窗格是否成功
...@@ -193,7 +193,7 @@ actions ...@@ -193,7 +193,7 @@ actions
将焦点移至“消息”文本,然后双击以突出显示。 使用`perform()`方法执行操作。 将焦点移至“消息”文本,然后双击以突出显示。 使用`perform()`方法执行操作。
#### 2.在文本框中以大写字母键入“hi there #### 2.在文本框中以大写字母键入“`hi there`
```java ```java
actions actions
...@@ -204,9 +204,9 @@ actions ...@@ -204,9 +204,9 @@ actions
.perform(); .perform();
``` ```
首先将焦点移至文本框,按住`SHIFT`键,键入文本“hi there”,使其大写,然后在`keyup`方法的帮助下释放`SHIFT`键。 首先将焦点移至文本框,按住`SHIFT`键,键入文本“`hi there`”,使其大写,然后在`keyup`方法的帮助下释放`SHIFT`键。
### 3.拖放“click() ### 3.拖放“`click()`
这可以通过两种方式完成: 这可以通过两种方式完成:
...@@ -216,7 +216,7 @@ actions ...@@ -216,7 +216,7 @@ actions
.perform(); .perform();
``` ```
最简单的方法是使用`dragAndDropBy`方法,在该方法中,我们可以指定要拖动的元素以及 xOffset 和 yOffset 最简单的方法是使用`dragAndDropBy`方法,在该方法中,我们可以指定要拖动的元素以及`xOffset``yOffset`
如果您想走复杂路线,看起来像忍者, 如果您想走复杂路线,看起来像忍者,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册