Selenium webdriver 如何基于作为测试数据传递的标识符识别元素?

Selenium webdriver 如何基于作为测试数据传递的标识符识别元素?,selenium-webdriver,Selenium Webdriver,这是我的设想 有一个或多个单选按钮。每个单选按钮都有一个唯一的标识符 例如,radio1用于电话号码1,radio2用于电话号码2 如果我通过测试数据作为电话号码2,我需要选择radio2。 如果我通过测试数据作为电话号码1,我需要选择radio1 关键是,有时会显示一个单选按钮,有时会在页面中显示多个单选按钮。根据我的输入,我需要选择单选按钮 若我将测试数据作为电话号码2通过,若radio2不可用,那个么我将得到元素not found异常 我如何处理这种情况 我的要求是:如果我通过了电话号码1

这是我的设想

有一个或多个单选按钮。每个单选按钮都有一个唯一的标识符

例如,radio1用于电话号码1,radio2用于电话号码2

如果我通过测试数据作为电话号码2,我需要选择radio2。 如果我通过测试数据作为电话号码1,我需要选择radio1

关键是,有时会显示一个单选按钮,有时会在页面中显示多个单选按钮。根据我的输入,我需要选择单选按钮

若我将测试数据作为电话号码2通过,若radio2不可用,那个么我将得到元素not found异常

我如何处理这种情况

我的要求是:如果我通过了电话号码1,那么应该进行检查,确保保存电话号码1的单选按钮可用。

好, 你可以试试下面的

int count = driver.findElements(By.XPath(//*[contains(@id,'radio')])).size();
计数将显示页面上有多少个单选按钮

根据计数,您可以执行测试


同样的方法,您也可以尝试使用PhoneNumber。

如果您知道测试数据的计数,请尝试以下方法:

List<WebElement> elements = driver.findElements(By.xpath("//input[contains(@id,'text')]"));

for(int i=0;i< testDataCount;i++){
  System.out.println(elements.get(i).getText());
}
List elements=driver.findElements(By.xpath(//input[contains(@id,'text')]);
对于(int i=0;i
当实际的
html
与问题一起提供时,通常更容易提供解决方案。在不了解测试内容的情况下,它没有任何意义!如果我们知道需要测试什么样的流就好了。对于一个场景,是否存在一个单选按钮,对于第二个场景,是否存在多个单选按钮,以便根据需要调用处理单选按钮的所需方法。