有没有办法在使用CucumberJS和Selenium进行自动测试时单击Blueprintjs Radio Component的单选按钮?

问题描述 投票:0回答:1

我正在使用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:invalid selector:指定了无效或非法的选择器”。我可以填写表单中的文本框,但无法单击单选按钮。

你能帮我解决这个问题吗?

reactjs selenium-webdriver cucumberjs blueprintjs
1个回答
0
投票

您没有在CSS选择器中的属性值周围加引号。它应该是

input[type='radio'][value='Miss.']

但是你有一个ID,所以我不确定你为什么不使用它

By.id("radio-gender-2")
© www.soinside.com 2019 - 2024. All rights reserved.