小编TDH*_*DHM的帖子

Xpath找出具有任何文本的元素

我的情况是我可以在任何标签中包含文本(不确定是哪一个).我们以下面的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来获取具有任何文本的元素吗?

xpath

3
推荐指数
1
解决办法
2438
查看次数

存储定位器的最佳方式

我正在关注Selenium自动化的页面对象设计模式,我可以猜测很多人将定位器存储在.properties文件中并通过代码访问它们.将定位器放在不同的位置似乎很棒.

既然,我还没有参与任何关于Selenium自动化的大项目,我想知道关于跟随的想法,以便我可以避免将来可能出现的问题:

  1. 在大型项目中存储属性文件中的定位器是否有用(测试用​​例超过1000个左右)?

    a)如果对大型项目没有帮助,那么使我们不在属性文件中存储定位器的困难是什么?

    b)如果它有用,如果采取了哪些预防措施可以使工作更轻松?

  2. 与属性文件相比,在页面类中存储定位器本身是最好的方法吗?

java selenium pageobjects selenium-webdriver

3
推荐指数
2
解决办法
3415
查看次数

从服务器删除分支是否会永久删除该分支的历史记录?

我创建了一个分支“测试”(仅出于学习目的)并将其推送到原始服务器。对于分支“测试”,我有两次提交,我将它们推到了起点。但是我不想要那些提交,因此也不要那个分支。因此,现在,我将从原点删除分支“ test”(以及在本地通过“ git branch -d test”删除):

git push origin :test
Run Code Online (Sandbox Code Playgroud)

这会永久删除该分支的所有内容(包括两个提交)吗?

另外,我可以创建一个具有相同名称的分支,即“ test”吗?

git

2
推荐指数
1
解决办法
453
查看次数

双击Selenium的JavaScript执行

有一种方法可以通过执行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执行双击。

javascript java selenium-webdriver

2
推荐指数
1
解决办法
8300
查看次数

TestNG软断言输出不全面

我在我的代码中使用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软断言的缺陷/缺点还是有些东西,我遗漏了?

java testng selenium-webdriver

2
推荐指数
1
解决办法
7694
查看次数

当其中一个阶段中止时如何标记构建成功?

我有一个带有阶段的管道,其中一个阶段间歇性地花费比预期更长的时间,因此用于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。你能帮助我如何实现这一目标吗?

jenkins jenkins-groovy jenkins-pipeline

2
推荐指数
1
解决办法
2446
查看次数

Selenium WebDriver:我如何随机选择链接?

我需要在网站上自动登录,然后从链接列表中随机选择链接.每次测试运行后,应从列表中随机选择新链接.我已经自动登录了:

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)

现在,我有链接列表,需要随机选择它们.我怎么能这样做?

java selenium selenium-webdriver

1
推荐指数
1
解决办法
3675
查看次数

WebDriver和FirefoxDriver之间的区别

我是Selenium WebDriver的新手.谁能告诉我这两行之间有什么区别?

WebDriver driver = new FirefoxDriver();
Run Code Online (Sandbox Code Playgroud)

FirefoxDriver d = new FirefoxDriver();
Run Code Online (Sandbox Code Playgroud)

两者都推出了Firefox浏览器.那么为什么我们总是写第一行而不是第二行呢?

java selenium webdriver selenium-webdriver

1
推荐指数
1
解决办法
7588
查看次数

WebDriver 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)

selenium selenium-webdriver

1
推荐指数
1
解决办法
1万
查看次数

如何从输入标签获取文本?

我有一个案例,我要从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标签中获取文字吗?

selenium selenium-webdriver

1
推荐指数
1
解决办法
4637
查看次数