我的情况是我可以在任何标签中包含文本(不确定是哪一个).我们以下面的HTML代码段为例:
<div .....>
<div ......>
<div ......>
<div ......>
Run Code Online (Sandbox Code Playgroud)
以上其中一个有文字,但不确定哪一个有.我们来看两个例子:
在这里,div 3有文字:
<div .....>
<div ......>
<div ......>Hello
<div ......>
Run Code Online (Sandbox Code Playgroud)
在这里,div 2有文字:
<div .....>
<div ......>Hi
<div ......>
<div ......>
Run Code Online (Sandbox Code Playgroud)
我想获得包含任何文本的div的元素,无论它是什么.我们可以编写xpath来获取具有任何文本的元素吗?
我正在关注Selenium自动化的页面对象设计模式,我可以猜测很多人将定位器存储在.properties文件中并通过代码访问它们.将定位器放在不同的位置似乎很棒.
既然,我还没有参与任何关于Selenium自动化的大项目,我想知道关于跟随的想法,以便我可以避免将来可能出现的问题:
在大型项目中存储属性文件中的定位器是否有用(测试用例超过1000个左右)?
a)如果对大型项目没有帮助,那么使我们不在属性文件中存储定位器的困难是什么?
b)如果它有用,如果采取了哪些预防措施可以使工作更轻松?
我创建了一个分支“测试”(仅出于学习目的)并将其推送到原始服务器。对于分支“测试”,我有两次提交,我将它们推到了起点。但是我不想要那些提交,因此也不要那个分支。因此,现在,我将从原点删除分支“ test”(以及在本地通过“ git branch -d test”删除):
git push origin :test
Run Code Online (Sandbox Code Playgroud)
这会永久删除该分支的所有内容(包括两个提交)吗?
另外,我可以创建一个具有相同名称的分支,即“ test”吗?
有一种方法可以通过执行javascript来单击元素,如下所示:
((JavascriptExecutor)driver).executeScript("arguments[0].click();", element);
Run Code Online (Sandbox Code Playgroud)
我想通过执行javascript双击element,因此我尝试了如下操作:
((JavascriptExecutor)driver).executeScript("arguments[0].doubleClick();", element);
Run Code Online (Sandbox Code Playgroud)
但是它给出了错误:
org.openqa.selenium.WebDriverException: unknown error: undefined is not a function
Run Code Online (Sandbox Code Playgroud)
请告诉我我需要做什么才能通过执行javascript执行双击。
我在我的代码中使用TestNG软断言.
public class AssertionTest{
private SoftAssert softAssert = new SoftAssert();
@Test(enabled = true)
public void testSoftAssertion(){
softAssert.assertTrue(false);
softAssert.assertTrue(true);
softAssert.assertEquals("India", "US");
softAssert.assertAll();
}
}
Run Code Online (Sandbox Code Playgroud)
当测试执行完成测试失败(如预期)但结果不提供详细信息,而是提供如下信息,这无助于理解哪个断言失败.
FAILED: testSoftAssertion
java.lang.AssertionError: The following asserts failed:
null, null
Run Code Online (Sandbox Code Playgroud)
我期待输出有助于理解结果的东西(这种类型的输出是在我们使用硬断言时产生的,即与Assert类一起使用).
FAILED: testSoftAssertion
java.lang.AssertionError: The following asserts failed:
expected [true] but found [false]
expected [India] but found [US]
Run Code Online (Sandbox Code Playgroud)
这是已知的TestNG软断言的缺陷/缺点还是有些东西,我遗漏了?
我有一个带有阶段的管道,其中一个阶段间歇性地花费比预期更长的时间,因此用于timeout中止它。但如果阶段中止,构建也会标记为中止。以下是管道的代码:
pipeline {
agent any
stages {
stage('First') {
options {
timeout(time: 10, unit: 'SECONDS')
}
steps {
script {
catchError(buildResult: 'SUCCESS') {
echo "Executing stage I"
sleep 12
}
}
}
}
stage('Second') {
steps {
script {
echo "Executing stage II"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
即使阶段被标记为Aborted,我想将构建标记为Success。你能帮助我如何实现这一目标吗?
我需要在网站上自动登录,然后从链接列表中随机选择链接.每次测试运行后,应从列表中随机选择新链接.我已经自动登录了:
public class Test1{
public static void main(String[] args)
String path = System.getProperty("user.dir");
System.out.println(path);
System.setProperty("webdriver.chrome.driver",System.getProperty("user.dir")+"\\ChromeDriver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get ("http://test.com");
WebElement email = driver.findElement(By.id("email"));
email.sendKeys("brr@gmai.com");
WebElement password = driver.findElement(By.id("pass"));
password.sendKeys("1111");
Run Code Online (Sandbox Code Playgroud)
现在,我有链接列表,需要随机选择它们.我怎么能这样做?
我是Selenium WebDriver的新手.谁能告诉我这两行之间有什么区别?
WebDriver driver = new FirefoxDriver();
Run Code Online (Sandbox Code Playgroud)
和
FirefoxDriver d = new FirefoxDriver();
Run Code Online (Sandbox Code Playgroud)
两者都推出了Firefox浏览器.那么为什么我们总是写第一行而不是第二行呢?
package org.openqa.selenium.example;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class GoogleSuggest {
public static void main(String[] args) throws Exception {
// The Firefox driver supports javascript
WebDriver driver = new FirefoxDriver();
// Go to the Google Suggest home page
driver.get("http://www.google.com/webhp?complete=1&hl=en");
// Enter the query string "Cheese"
WebElement query = driver.findElement(By.name("q"));
query.sendKeys("Cheese");
// Sleep until the div we want is visible or 5 seconds is over
long end = System.currentTimeMillis() + 5000;
while (System.currentTimeMillis() < end) { …Run Code Online (Sandbox Code Playgroud) 我有一个案例,我要从input标签中获取文字,如下所示 -
<input id="AB_WIN_1" class="text real" type="text" ds="0" style="top:0px; left:167px; width:140px; height:21px;"/>
Run Code Online (Sandbox Code Playgroud)
输入标签中的文字是一些文字说的 Hello
但是当我使用时getText,它什么都不返回.
无论如何我可以从input标签中获取文字吗?
java ×5
selenium ×5
git ×1
javascript ×1
jenkins ×1
pageobjects ×1
testng ×1
webdriver ×1
xpath ×1