reactjs - 使用 CucumberJS 和 Selenium 进行自动化测试时,是否可以单击 Blueprintjs Radio 组件的 Radio 按钮?
问题描述
我正在使用 CucumberJS 和 Selenium Webdriver 进行自动化测试。我正在尝试使用这段代码单击表单中的单选按钮:
try {
let gender = driver.findElement(By.css("input[type=radio][value=Miss.]"))
gender.click()
driver.sleep(7000)
} catch (ex) {
console.log(ex)
}
这是我使用 Blueprint 库的 React 代码:
<RadioGroup>
<Radio id="radio-gender-1" label="Mr." value="Mr." checked={this.state.title === "Mr."} />
<Radio id="radio-gender-2" label="Miss." value="Miss." checked={this.state.title === "Miss."} />
</RadioGroup>
但是当我运行测试时,它会抛出一个错误,说明:
UnhandledPromiseRejectionWarning:InvalidSelectorError:无效选择器:指定了无效或非法的选择器。
我可以填写表单中的文本框,但无法单击单选按钮。
你能帮我解决这个问题吗?
解决方案
您没有在 CSS 选择器中的属性值周围加上引号。它应该是
input[type='radio'][value='Miss.']
但是你有一个 ID,所以我不确定你为什么不使用它
By.id("radio-gender-2")
推荐阅读
- python - 如何使用 .loc 和 .contains 设置列值
- mysql - MySQL计算数据透视表上至少有一条记录的所有记录
- simulation - 如何修复 Castalia 中的“网络初始化期间 SensorManager 模块中的错误”
- reactjs - 使用 ReactDOM.render 时无法将道具作为 JSON 传递
- python - 同一周数 Python Pandas 过去 3 年的滚动平均值
- python - GPIO 事件未显示在 QTreeModel / QWidget / QMainWindow
- javascript - 从 Stripe API 检索发票时,如何缩小结果范围以仅从对象内的一个属性中检索数据?
- tensorflow - tensorflow中定义的faster_rcnn_resnet101在哪里(比如层在哪里)
- nginx - Kestrel vs IIS+Kestrel(反向代理) vs Nginx
- javascript - 通过调用 php 文件动态构建 JavaScript