javascript - Protractor - 单击具有特定文本跨度的 div 中的按钮

标签 javascript html css protractor automated-tests

我在点击 Protractor 中的按钮时遇到问题。简化的代码如下所示:

<div class = "container">   
  <div class = "col1">
    <span class = "hour">12:00</span>   
  </div>

  <div class="col2">
    <button class="btn">Test</button>   
  </div>
</div>

<div class = "container">   
      <div class = "col1">
        <span class = "hour">13:00</span>   
      </div>

      <div class="col2">
      <button class="btn">Test</button>   
      </div>    
</div>

我想单击 div 中的一个按钮,它的跨度为“12:00”。条件必须检查小时。

我可以很容易地检查跨度

by.xpath('//span[contains(text(), "12:15")]')

我主要关心的是选择具有此跨度的父 div 的按钮。这可能吗? 谢谢。

最佳答案

我也有类似的情况。但我只需要从 DOM 中提取一个值并将其与预期结果进行比较,它看起来像这样:

records = await targeting_page.records.getText();
        recordsNumber = parseFloat(records.replace(/,/g, ''));
        recordsRange = recordsNumber >= 100 && recordsNumber < 90000000;
        await expect(recordsRange).toEqual(true);

但你的场合差别不大。

那是我在您问题的这一页上在浏览器控制台中写的内容

    async function fin() {
    for(var i = 0; i < 100; i++) {
    var myElement = document.querySelector("code span:nth-child(27)").textContent //your find your desired element
    console.log(b)
    typeof b == 'string' ? console.log(true) : console.log(false) //this is optionally 

    var res = parseFloat(b) //parse when it will be 12:00 you will get the 12 number
    console.log(res)
    res == 13 ? await b.click() : console.log("The button is not ready yet") //and here compare is there that number you need, if yes then click element(this doesn't work in console, 
// if you use async/await in your protractor tests, there are it will work
     }    
    }

    fin()

这就是本页直接涉及的内容。 在测试中,它看起来像这样(它可以更好,但我起草得非常快):

for(let i=0; i < 100; i++) {
var myE = await myElement.getText(); //where myElement -- your selector
        var myNumber = parseFloat(myE.replace(/:/g, '')); // parse and get 12 out of "12:00"
        if (myNumber == 12) {
await myElement.click()
 } else {
  console.log("The button is not ready yet")
 }
}

关于javascript - Protractor - 单击具有特定文本跨度的 div 中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51156804/

相关文章:

javascript - 根据变量添加 polymer 手势监听器

javascript - 如何在java脚本中向任何给定日期添加任意天数

html - 如何修改此 SQL 查询中的 XML 代码以突出显示表的特定行?

html - 使用 C++ std::sregex_token_iterator 提取 HTML 注释

css - bundle 来自不同文件夹的样式表和脚本

javascript - 我想在登录失败时打印警报消息

javascript - 如何处理好友在线并在mini facebook有信息时立即发送通知

javascript - jQuery 获取表格行中的隐藏字段值

css - 如何在查询移动设备中按 ID 或类设置按钮样式

javascript - 带有单选按钮的 JSON 到 Html 表