单击动态生成的按钮

时间:2019-02-21 12:47:26

标签: javascript protractor gulp-protractor

我将给出“开始日期”和“结束日期”,然后单击“创建”按钮。预期的输出是

  1. 使用下载按钮从“从日期”到“到日期”之间找到N个案例
  2. 从“从日期”到“到日期”共发现0个案例,没有下载按钮

在第一种情况下:

<div data-ng-if="canDownload()" class="ng-scope"
<h3 class="ABC" id="summary">N cases ound from "from dates" to "to dates"
<a data-ng-href="URL" id="summaryHREF"
<button class="XYZ" type="submit">Download<

在第二种情况下:

<div data-ng-if="noCases()" class="ng-scope"
<h3 class="ABC" >0 cases ound from "from dates" to "to dates"

我成功地测试了假设情况(在发现病例的情况下)

let notes = element(by.id("summary"));

var EC = protractor.ExpectedConditions;
var flag = browser.wait(EC.visibilityOf(notes), 5000, '**** There are cases to Download ****');

if(flag){

  this.downloadReg = element(by.xpath("//button[text()='Download']"));
  this.downloadReg.click();
}
else{
  console.log("No Cases found and Do Nothing");

}

如何检查“摘要”文本中是否包含“找到0个案例...”,然后什么也不做,或者是否找到案例,然后单击“动态生成的下载”按钮。

4 个答案:

答案 0 :(得分:1)

请尝试以下代码段,

value

干杯!

答案 1 :(得分:0)

我建议使用: ExpectedConditions.textToBePresentInElement

无需使用if else-当测试找不到预期的测试时,它将在超时时失败。

答案 2 :(得分:0)

您可以先检查DOM中是否存在下载按钮,然后单击它。否则,什么也不做,继续前进。

这是假设在第二种情况下,h3元素也具有'summary' id属性。

const notes = element(by.id('summary'));
await browser.wait(EC.visibilityOf(notes), 5000);

const downloadBtn = element(by.buttonText('Download'));
const flag = await downloadBtn.isPresent();

if (flag) {
    await downloadBtn.click();
}

答案 3 :(得分:0)

1)等待元素使用预期条件定位(EC) 2)使用cssContainingText('locator',“ string”)

否则

使用以下命令编写动态xpath: