cypress错误-cy.select()失败,因为该元素当前被禁用

时间:2019-10-29 00:33:39

标签: javascript jquery cypress

我正在使用Cypress.io测试平台和Chrome浏览器/最新版本。

我有3个选择下拉菜单。默认情况下,第一个启用,因此我可以选择它。第二个和第三个禁用。手动进行选择并选择第一个下拉菜单时,将启用第二个下拉菜单,然后在选择第二个下拉菜单时,将启用第三个下拉菜单。我可以分别使用cy.get的名称或索引0、1或2来分别对每个地址进行寻址。所以我只用这个问题的索引。

现在,当我使用赛普拉斯以编程方式选择第一个下拉菜单时:

cy.get('select').eq(0).select('Nursing', {force: true})

...第二个下拉列表保持禁用状态。在选择第一个下拉菜单后,我添加了cy.wait(2000) [2秒],要花很多时间,然后我尝试选择第二个下拉菜单,例如:cy.get('select').eq(1).select('US - Alaska', {force: true}),但出现此错误:

CypressError: Timed out retrying: cy.select() failed because this element is currently disabled: <select id="course-finder-location-select" name="course_finder_location" data-select2-id="course-finder-location-select" disabled="" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true"></select>,这是第二选择。

如您所见,我通过eq(1)使用了它的索引,它正确地将其标识为第二选择。

我试图弄清楚如何使用赛普拉斯测试命令启用第二个下拉菜单。我什至包括了一个不会引起错误的jQuery CDN。但是,当我尝试添加在控制台中运行的jQuery命令时[启用第二选择]:

jQuery("#course-finder-location-select").prop( "disabled", false )

我的赛普拉斯测试完全崩溃,没有错误。它似乎不喜欢jQuery命令,甚至不喜欢JavaScript-我也尝试过这样做:

document.getElementById("course-finder-location-select").disabled = false

[尽管我可以做一个window.alert("!")]。

有什么想法可以让第二个选择启用赛普拉斯?我根本无法更改HTML文件。

提前感谢您的宝贵时间!如果您有任何建议可以更改此字词,请告诉我。我还没有设置赛普拉斯的沙箱。

1 个答案:

答案 0 :(得分:0)

将此用于第二个下拉列表:

/* Bubble sort the given linked list */
void bubbleSort(struct Node *start) 
{ 
    int swapped; 
    struct Node *ptr1; 
    struct Node *lptr = NULL; 

    /* Checking for empty list */
    if (start == NULL) 
        return; 

    do
    { 
        swapped = 0; 
        ptr1 = start; 

        while (ptr1->next != lptr) 
        { 
            if (ptr1->data > ptr1->next->data) 
            {  
                swap(ptr1, ptr1->next); 
                swapped = 1; 
            } 
            ptr1 = ptr1->next; 
        } 
        lptr = ptr1; 
    } 
    while (swapped); 
}