NodeJS 被另一个元素所覆盖

dgenwo3n  于 2023-01-30  发布在  Node.js
关注(0)|答案(2)|浏览(123)

重试超时:www.example.com()失败,原因是此元素:cy.select() failed because this element:

<select aria-describedby="searchDropdownDescription" class="nav-search-dropdown searchSelect" data-nav-digest="Xa0GQ+pPQ/tdsV+GmRWeXB8PUD0=" data-nav-selected="0" id="searchDropdownBox" name="url" style="display: block;" tabindex="0" title="Search in">...</select>

正被另一个因素所覆盖

<input type="text" id="twotabsearchtextbox" value="" name="field-keywords" autocomplete="off" placeholder="" class="nav-input" dir="auto" tabindex="0" aria-label="Search">

解决此问题,或使用{force:true}禁用错误检查。我的代码:

describe('Amazon test', function()
{
    it('Matching book', function()
    {
        cy.visit("https://amazon.com")
        cy.title().should('eq',"Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more")
        cy.get('#twotabsearchtextbox').click({force: true}).get('#searchDropdownBox').select('Books')
        
    })
  })

我该怎么解决呢?

hrirmatl

hrirmatl1#

试试这个:

cy.get('#twotabsearchtextbox')
  .click()
  .get('#searchDropdownBox')
  .select('Books', {force: true}) // <- add {force: true}
bxjv4tth

bxjv4tth2#

你想点击<select>标签,但是Cypress模拟了一真实的人,一个真实的人不能在真实的浏览器中点击<select>,因为<select><input>覆盖了。
所以我认为你可能需要先调试你的页面代码。
提醒,部分覆盖也会触发此问题。

相关问题