首页 > 解决方案 > 找不到搜索栏

问题描述

我需要找到一个搜索栏来搜索下面框中列出的一些文本并单击它。我尝试了下面的代码,但我无法执行该活动。

此代码未点击搜索栏:-

driver.findElement(By.xpath("//input[@class='Searchbar__search-field___2FQ0S search-input']")

HTML 的图像: 在此处输入图像描述

标签: seleniumselenium-webdriverxpathcss-selectorswebdriverwait

解决方案


所需的元素是模态对话框中启用ReactJS的元素,因此要定位元素,您必须诱导WebDriverWait以使元素可点击,并且您可以使用以下任一定位器策略

  • cssSelector

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.modal-body#promotion-url-modal-body input.search-input[placeholder='Find a promotion...']"))).click();
    
  • xpath

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='modal-body' and @id='promotion-url-modal-body']//input[contains(@class, 'search-input') and @placeholder='Find a promotion...']"))).click();
    

推荐阅读