小编so *_*ead的帖子

WebDriverWait用于更改元素属性

如何使用WebDriverWait等待属性更改?

在我的AUT中,我必须等待按钮在继续之前启用,不幸的是由于开发人员编写页面的方式我不能使用WebElement的isEnabled()方法.开发人员正在使用一些CSS来使按钮看起来像被禁用,因此用户无法点击它,方法isEnabled总是为我返回true.所以我要做的是获取属性"aria-disabled"并检查文本是"true"还是"false".到目前为止我一直在做的是使用Thread.sleep的for循环,如下所示:

for(int i=0; i<6; ++i){
    WebElement button = driver.findElement(By.xpath("xpath"));
    String enabled = button.getText()
    if(enabled.equals("true")){ break; }
    Thread.sleep(10000);
 }
Run Code Online (Sandbox Code Playgroud)

(如果不正确,请忽略上面的代码,只是我正在做的伪代码)

我确信有一种方法可以使用WebDriverWait实现类似的东西,这是我无法弄清楚如何的首选方法.这就是我想要实现的,即使以下方法不起作用:

WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.visibilityOf(refresh.getText() == "true")); 
Run Code Online (Sandbox Code Playgroud)

显然它不起作用,因为函数期望WebElement不是String,但它正是我想要评估的.有任何想法吗?

selenium webdriver selenium-webdriver

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

WebElements列表中的相对Xpath

在我收集了WebElements列表后,是否可以使用相对xpath?如果是这样,最好的方法是什么?

这就是我所拥有的:

List <WebElement> rows = driver.findElements(By.xpath(rowsXpath));
int j = 1;
boolean foundCollector = false;
for(WebElement e : rows) {
    String c = e.findElement(By.xpath("(//tbody)[" + j + "]//u[text()=\"" + collector + "\"])")).getText();
    if(c.equals(collector)) {
        foundCollector = true;
        break;
    }
    ++j;
}
Run Code Online (Sandbox Code Playgroud)

列表行包含具有多列的单个行,我正在尝试查找列中包含特定名称的行.在我的for循环中,我试图使用相对xpath来查找元素,这是否可能?或者我是否需要提供我用于查找各个div的附加xpath行的整个xpath?

我不保证列的顺序,这就是我必须这样做的原因.

这是我用来获取行的xpath:

String rowsXpath = "//div[@id=\"QosDashpardPanelBottom\"]//div[@id=\"CollectorQoSPerformanceMetricsgrid\"]//div[contains(@class, \"x-grid3-row  x-unselectable-single\")]";
Run Code Online (Sandbox Code Playgroud)

这是HTML:

<body class=" ext-gecko ext-windows" onload="processLoaders();">
<script type="text/javascript">
<div id="topNavDiv" style="height: 90px">
<div id="bodyContentOuter" style="width: 1280px; height: 587px;">
    <div id="bodyContentInner">
        <script src="RLT/RLT.nocache.js" language="javascript" type="text/javascript">
        <script defer="defer">
        <script language="javascript" type="text/javascript">
        <div …
Run Code Online (Sandbox Code Playgroud)

java selenium xpath webdriver selenium-webdriver

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

如何使用aws cloudformation将RDS实例添加到VPC

当我手动启动RDS实例时,我能够分配我希望它成为的一部分VPC.我正在尝试使用AWS cloudformation创建堆栈,但是我没有看到API能够做到这一点.我可以在堆栈中创建我的VPC,然后为EC2和DB安全组的安全组引用它们,它们最终都是VPC的一部分,但是RDS实例本身没有.有没有办法将VPC分配给RDS实例?

以下是我的模板:

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Metadata": {
    "AWS::CloudFormation::Designer": {
      "30e03bfc-b61a-4d6c-89db-1b62b258a305": {
        "size": {
          "width": 80,
          "height": 80
        },
        "position": {
          "x": 700,
          "y": 170
        },
        "z": 0,
        "embeds": []
      }
    }
  },

  "Parameters": {

    "DBPreferredBkupWindow": {
      "Description"                 : "The daily time range (in UTC) during which automated backups are created, ideally off peak-hours.",
      "Type"                        : "String",
      "MinLength"                   : "1",
      "MaxLength"                   : "11",
      "AllowedPattern"              : "\\d[0-23]:\\d[0-59]-\\d[0-23]:\\d[0-59]",
      "Default"                     : "01:00-02:00"
    }
  },

  "Resources": {

    "VPC": {
      "Type": "AWS::EC2::VPC",
      "Properties": {
        "CidrBlock" …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation

9
推荐指数
2
解决办法
4646
查看次数

在Visual Studio 2017中传递参数,例如nunit-console params cli

如果我使用NUnit的nunit3-console CLI实用程序运行单元测试,则可以使用“ params”标志传递参数,如下所示:

>nunit3-console --params:testKey=test203 TestClass.dll
Run Code Online (Sandbox Code Playgroud)

在VS中进行调试确实很烦人,因为我必须设置标志“ --debug”,然后必须将其附加到Visual Studio的过程中。我的问题是,是否有可能仅使用Visual Studio将该参数传递给我的单元测试?

我需要以这种方式传递参数的原因是因为我在设置方法中需要它,而Nunit不允许我使用变量来动态更改它。

c# nunit visual-studio nunit-3.0 visual-studio-2017

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

如果元素在屏幕上不可见,则WebElement getText()在Firefox中为空字符串

在将Firefox升级到版本19之后,我的Selenium Webdriver测试最近破了.在我的几个测试中,我需要检索页面上但在浏览器窗口中看不到的元素,即我必须向右滚动才能看到它们.自升级到Firefox 19(我从15升级,因此这可能是16以来的问题)我只能检索我可以在浏览器窗口看到的元素的文本.我的xpath正确检索所有元素,例如在我的下面的代码中:

    private void buildColumnsMap(){
    allColumnHeaders = new HashMap<String,Integer>();
    positionToColumnName = new ArrayList<String>();

    WebElement columnsRoot = driver.findElement(By.xpath(COLUMNS_ROOT_XPATH));
    List <WebElement> columns = columnsRoot.findElements(By.xpath("./td/div/span"));
    System.out.println("Number of columns found: " + columns.size());

    for(int i = 0; i < columns.size(); ++i){
        String columnName = columns.get(i).getText();
        System.out.println("Column been inserted: " + columnName);
        allColumnHeaders.put(columnName, i);
        positionToColumnName.add(columnName);
    }
}
Run Code Online (Sandbox Code Playgroud)

列"列"的大小为38,但在我的浏览器窗口中,我只能看到10列而不必滚动所以当我将列名放入我的对象时,我得到10个列名,然后是所有空白.

Number of columns found: 38
Column been inserted: Date/Time
Column been inserted: Endpoint1
Column been inserted: Endpoint2
Column been inserted: Duration
Column been inserted: Codec1
Column …
Run Code Online (Sandbox Code Playgroud)

firefox selenium webdriver selenium-webdriver

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

如何使用sed替换bash中后跟0或更多空格的命令

我无法弄清楚如何在bash变量中替换逗号后跟0或更多空格.这就是我所拥有的:

base="test00 test01 test02 test03"
options="test04,test05, test06"

for b in $(echo $options | sed "s/, \+/ /g")
do
  base="${base} $b"
done
Run Code Online (Sandbox Code Playgroud)

我要做的是将"选项"附加到"基础".选项是用户输入,可以是空的,也可以是csv列表,但该列表可以是

"test04,test05,test06" - >逗号后面的空格

"test04,test05,test06" - >没有空格

"test04,test05,test06" - >混合物

我需要的是我的输出"base"是一个以空格分隔的列表,但无论我尝试什么,我的列表在第一个单词后不断被切断.

我的预期是

"test00 test01 test02 test03 test04 test05 test06"

linux bash sed

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

JMeter bzm - Parallel Controller class java.util.IdentityHashMap cannot be cast to class java.util.HashMap exception

I am using jmeter 5.6.2 and Java java version 17.0.8 2023-07-18 LTS Java(TM) SE Runtime Environment (build 17.0.8+9-LTS-211) Java HotSpot(TM) 64-Bit Server VM (build 17.0.8+9-LTS-211, mixed mode, sharing)

After adding bzm - Parallel Controller to my thread group I faced this exception:

ERROR o.a.j.t.JMeterThread: Error while processing sampler: 'bzm - Parallel Controller'.
java.lang.ClassCastException: class java.util.IdentityHashMap cannot be cast to class java.util.HashMap (java.util.IdentityHashMap and java.util.HashMap are in module java.base of loader 'bootstrap')
    at com.blazemeter.jmeter.controller.JMeterThreadParallel.cloneTestCompiler(JMeterThreadParallel.java:45) ~[jmeter-parallel-0.11.jar:?]
    at com.blazemeter.jmeter.controller.JMeterThreadParallel.copyCompilerFromParent(JMeterThreadParallel.java:36) ~[jmeter-parallel-0.11.jar:?]
    at com.blazemeter.jmeter.controller.JMeterThreadParallel.<init>(JMeterThreadParallel.java:26) ~[jmeter-parallel-0.11.jar:?] …
Run Code Online (Sandbox Code Playgroud)

java jmeter

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