你可以通过特定名称在行内查找一个在 div 元素内的按钮。

huangapple go评论81阅读模式
英文:

How can I find a button inside a div element searching by specific name in a row?

问题

该页面在一个div元素内返回了多个记录。我试图获取包含名称Kiyara.Hu的行并点击该名称对应的编辑按钮。

我尝试了下面的命令,但没有成功。

cy.contains('div','Kiyara.Hu').find('button').click()

以下是HTML代码和网站的屏幕截图。

<div class="oxd-table-cell oxd-padding-cell" role="cell">
  <div class="oxd-table-card-cell-checkbox">
    <div class="oxd-checkbox-wrapper" data-v-6179b72a="">
      <label class="" data-v-6179b72a="">
        <input type="checkbox" value="22" data-v-6179b72a="">
        <span class="oxd-checkbox-input oxd-checkbox-input--active --label-right oxd-checkbox-input"
          data-v-6179b72a="">
          <i class="oxd-icon bi-check oxd-checkbox-input-icon"
            data-v-bddebfba="" data-v-6179b72a=""></i>
        </span>
      </label>
    </div>
  </div>
</div>
<div class="oxd-table-cell oxd-padding-cell" role="cell" style="flex: 1 1 0%;">
  <div data-v-6c07a142="">Kiyara.Hu</div>
</div>
<div class="oxd-table-cell oxd-padding-cell" role="cell" style="flex: 1 1 0%;">
  <div data-v-6c07a142="">ESS</div>
</div>
<div class="oxd-table-cell oxd-padding-cell" role="cell" style="flex: 1 1 0%;">
  <div data-v-6c07a142="">Kiyara Hu</div>
</div>
<div class="oxd-table-cell oxd-padding-cell" role="cell" style="flex: 1 1 0%;">

你可以通过特定名称在行内查找一个在 div 元素内的按钮。
你可以通过特定名称在行内查找一个在 div 元素内的按钮。
你可以通过特定名称在行内查找一个在 div 元素内的按钮。

英文:

The page returns several records within a div element. I am trying to fetch the line that contains the name Kiyara.Hu and click on the respective edit button of that name.

I tried the command below but it didn't work.

cy.contains(&#39;div&#39;,&#39;Kiyara.Hu&#39;).find(&#39;button&#39;).click()

Below is the HTML code and screenshots of the site.

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-html -->

&lt;div class=&quot;oxd-table-cell oxd-padding-cell&quot; role=&quot;cell&quot;&gt;
  &lt;div class=&quot;oxd-table-card-cell-checkbox&quot;&gt;
    &lt;div class=&quot;oxd-checkbox-wrapper&quot; data-v-6179b72a=&quot;&quot;&gt;&lt;label class=&quot;&quot; data-v-6179b72a=&quot;&quot;&gt;&lt;!----&gt;&lt;input type=&quot;checkbox&quot; value=&quot;22&quot; data-v-6179b72a=&quot;&quot;&gt;&lt;span
      class=&quot;oxd-checkbox-input oxd-checkbox-input--active --label-right oxd-checkbox-input&quot;
      data-v-6179b72a=&quot;&quot;&gt;&lt;i class=&quot;oxd-icon bi-check oxd-checkbox-input-icon&quot;
          data-v-bddebfba=&quot;&quot; data-v-6179b72a=&quot;&quot;&gt;&lt;/i&gt;&lt;/span&gt;&lt;/label&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;oxd-table-cell oxd-padding-cell&quot; role=&quot;cell&quot; style=&quot;flex: 1 1 0%;&quot;&gt;
  &lt;div data-v-6c07a142=&quot;&quot;&gt;Kiyara.Hu&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;oxd-table-cell oxd-padding-cell&quot; role=&quot;cell&quot; style=&quot;flex: 1 1 0%;&quot;&gt;
  &lt;div data-v-6c07a142=&quot;&quot;&gt;ESS&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;oxd-table-cell oxd-padding-cell&quot; role=&quot;cell&quot; style=&quot;flex: 1 1 0%;&quot;&gt;
  &lt;div data-v-6c07a142=&quot;&quot;&gt;Kiyara Hu&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;oxd-table-cell oxd-padding-cell&quot; role=&quot;cell&quot; style=&quot;flex: 1 1 0%;&quot;&gt;

<!-- end snippet -->

你可以通过特定名称在行内查找一个在 div 元素内的按钮。
你可以通过特定名称在行内查找一个在 div 元素内的按钮。
你可以通过特定名称在行内查找一个在 div 元素内的按钮。

答案1

得分: 4

有这么多的div在图片中,你需要更明确地指定你的测试需要定位哪一个。

按钮也是如此,因为每行有两个。

我假设表格中的行由类oxd-table-card表示,如果不是这种情况,你可以重新查看DOM以找到适当的元素。

cy.contains('div.oxd-table-card', 'Kiyara.Hu')
  .find('button').eq(1)
  .click()
英文:

With so many divs in the picture, you will have to be more specific about which one your test needs to target.

Same with the button, since there are two per line.

I'm presuming the line in the table is represented by class oxd-table-card, if that's not the case you can re-examine the DOM to find the appropriate element.

cy.contains(&#39;div.oxd-table-card&#39;, &#39;Kiyara.Hu&#39;)
  .find(&#39;button&#39;).eq(1)
  .click()

答案2

得分: 0

这是如何做的:

var divs = [...document.querySelectorAll("DIV")];
divs = divs.filter(function(a) {
  return a.innerText.includes('Kiyara.Hu');
});
// 可能首先检查你的 div 是否已被找到,然后
divs[0].querySelector("Button");
英文:

Here's how you can do it:

var divs = [...document.querySelectorAll(&quot;DIV&quot;)];
divs = divs.filter(function(a) {
  return a.innerText.includes(&#39;Kiyara.Hu&#39;);
});
//maybe check that your div has been found first, then
divs[0].querySelector(&quot;Button&quot;);

huangapple
  • 本文由 发表于 2023年7月14日 00:52:50
  • 转载请务必保留本文链接:https://go.coder-hub.com/76681710.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定