java - 无法定位元素:{"method":"css selector","selector":"#id_gender1"}
问题描述
我正在尝试通过我能想到的所有可能方式来选择复选框/单选按钮,但它们都没有奏效。
这是我试图识别复选框的方式
WebElement selectGender = driver.findElement(By.id("id_gender1"));
selectGender.click();
这是HTML代码
<div class="radio-inline">
<label for="id_gender1" class="top">
<div class="radio" id="uniform-id_gender1"><span class="checked"><input type="radio" name="id_gender" id="id_gender1" value="1">
</span>
</div>
Mr.
</label>
</div>
这是我收到的错误消息。
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"#id_gender1"}
(Session info: chrome=75.0.3770.142)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'JEFFERSONPC', ip: '192.168.100.6', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_211'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 75.0.3770.142, chrome: {chromedriverVersion: 75.0.3770.140 (2d9f97485c7b..., userDataDir: C:\Users\JEFFER~1\AppData\L...}, goog:chromeOptions: {debuggerAddress: localhost:63666}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: XP, platformName: XP, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify}
Session ID: 65163859269265511fa3118a5c9b1f79
*** Element info: {Using=id, value=id_gender1}
解决方案
诱导WebDriverWait并elementToBeClickable
单击该元素。
尝试以下选项。
WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement selectGender = wait.until(ExpectedConditions.elementToBeClickable(By.id("id_gender1")));
selectGender.click()
或者
WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement selectGender = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='radio-inline']/label[@for='id_gender1']")));
selectGender.click()
推荐阅读
- windows - 在 windows 上安装 caffe
- java - Gitlab 和 Code-Climate - 它真正涵盖了什么?没有?
- r - r 中的验证测试使用 for 循环找出 1 到 10 度回归的均方误差,每个回归重复 30 次
- c# - IAsyncEnumerable 视图组件在 asp.net 核心中返回
- sql-server - SQL 递增限制
- reactjs - 如何使用 JSS 设置 Material-UI 菜单弹出框的样式?
- dgraph - 如何更新现有节点中的信息而不是使用 Dgraph 创建新节点?
- dart - Flutter SOAP:如何在 Flutter 中使用 SOAP?
- python - 如何验证下采样是否符合预期
- ios - 在 uiscrollview 之外创建固定子视图