selenium - 找不到搜索栏
问题描述
我需要找到一个搜索栏来搜索下面框中列出的一些文本并单击它。我尝试了下面的代码,但我无法执行该活动。
此代码未点击搜索栏:-
driver.findElement(By.xpath("//input[@class='Searchbar__search-field___2FQ0S search-input']")
HTML 的图像:
解决方案
所需的元素是模态对话框中启用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();
推荐阅读
- angular - 用于表示 json HttpClient.get 响应的 Typescript 类或接口
- javascript - 如何从另一个范围内访问此功能?
- r - 按 dplyr 中的动态列名汇总
- javascript - 在窗口调整大小时更新画布动画宽度
- java - 在休息服务中写入文件的有效方法
- javascript - javascript - 在新点击时显示/隐藏重置
- php - 搜索结果并在 php 上获取 id
- go - 去 Lint 安装
- certificate - DTLS 期间的 WebRTC 证书
- javascript - 在 Javascript 中,我如何解码一个字符串,其中解码的字符串包含二进制(例如非 UTF-8)数据?