小编Say*_*osh的帖子

如何迭代和测试 cypress 元素内的不同子元素?

所以,我有以下结构中的元素:

<div class="MuiBox-root" data-testid="all-events">
  <ul ....>
    <div class="MuiBox-root" data-testid="event">
    <div class="MuiBox-root" data-testid="event">
    <div class="MuiBox-root" data-testid="event">
Run Code Online (Sandbox Code Playgroud)

现在,每个事件元素内都有以下结构:

 <div class="MuiBox-root" data-testid="event">
  <li .....>
    <div class="MuiBox-root ....." data-testid="event-status">
      <div> Text Value </div>
    <div class="MuiBox-root ....." data-testid="event-name">
    
Run Code Online (Sandbox Code Playgroud)

因此,我要测试的是,如果元素事件状态为已完成或活动,则元素事件名称将出现。所以我使用的方法如下:

cy.get("[data-testid='events']").its("length").then((numEvents) => {
  for (let i = 0; i < numEvents; i++) {
    cy.get("[data-testid='event-status']").each((status, index) => {
      if (index === i) {
        if (isEventActive(status)) {
          cy.get("[data-testid='event-name']").each((name, index) => {
            if (index === i) {
              cy.get(name).should("have.text", "some value");
            }
          });
        } …
Run Code Online (Sandbox Code Playgroud)

javascript automated-tests reactjs cypress

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

存在重复项时,如何将两元素列表转换成字典(一个元素将是键,另一个将是值)?

因此,我以以下方式获得了列表清单。

ab_list = [['AB','35'],['AB','78'],['CD','98'],['CD','41'],['CD','67'].....]
Run Code Online (Sandbox Code Playgroud)

现在,我想将此列表转换为字典,使其具有以下形式:

ab_dict = {'AB':'35|78','CD':'98|41|67'.........}
Run Code Online (Sandbox Code Playgroud)

因此,如果重复列表的第二个元素,则应通过管道将其连接,这将成为值。我不知道该怎么做的逻辑。我正在尝试的代码是:

for val in ab_list:
for value in final_list:
if val[0] == value[0]:
value[1] = value[1] + "|" + val[1]
Run Code Online (Sandbox Code Playgroud)

但这不能正常工作。这该怎么做?

python dictionary list

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