所以,我有以下结构中的元素:
<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) 因此,我以以下方式获得了列表清单。
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)
但这不能正常工作。这该怎么做?