C# 选择一个随机XPath元素

C# 选择一个随机XPath元素,c#,selenium,C#,Selenium,Hy, 网站上有一些按钮: 之前我将旧代码复制到问题中,这是实际代码: 在正常情况下,当我要单击选定元素(例如“btn_tag_1”)时,代码为: btn_tag_1.Click(); 但现在我想点击其中一个随机选择的,我在这一点上完全被绊住了。 这件事你能帮我吗? 谢谢大家! 如果您只是想了解有关如何随机单击其中一个按钮的帮助,我会这样做: using System; using OpenQA.Selenium; By[] buttonsBy = { By.XPath("

Hy, 网站上有一些按钮:

之前我将旧代码复制到问题中,这是实际代码:

在正常情况下,当我要单击选定元素(例如“btn_tag_1”)时,代码为:

btn_tag_1.Click();
但现在我想点击其中一个随机选择的,我在这一点上完全被绊住了。 这件事你能帮我吗?
谢谢大家!

如果您只是想了解有关如何随机单击其中一个按钮的帮助,我会这样做:

using System;
using OpenQA.Selenium;    

By[] buttonsBy = {
     By.XPath("//*[@data-testid='tag_1']"),
     By.XPath("//*[@data-testid='tag_2']"),
     By.XPath("//*[@data-testid='tag_3']"),
     By.XPath("//*[@data-testid='tag_4']"),
     By.XPath("//*[@data-testid='tag_5']"),
     By.XPath("//*[@data-testid='tag_6']")
};

int index = new Random().Next(buttonsBy.Length - 1);

IWebElement button = driver.FindElement(buttonsBy[index]);

button.Click();
使用By选择器创建一个数组,在该数组长度内选择一个随机数,使用该随机数作为索引查找元素,然后单击

在注释后添加代码:

您所需要做的就是更改每个定位器内的字符串,以便在注释中使用代码

By[] buttonsBy = {
     By.XPath("//*[@data-testid='tag_eject']"),
     By.XPath("//*[@data-testid='tag_close']"),
     By.XPath("//*[@data-testid='tag_open']"),
     By.XPath("//*[@data-testid='tag_selected']"),
     By.XPath("//*[@data-testid='tag_disabled']"),
     By.XPath("//*[@data-testid='tag_free']")
};

Hy,您的解决方案似乎很好,但我在问题中犯了一个巨大的错误,我复制了一个旧代码…所以我现在的代码:
IWebElement btn_tag_1=driver.FindElement(By.XPath(“/*[@data testid='tag_eject']);IWebElement btn_tag_2=driver.FindElement(By.XPath(“/*[@data testid='tag_close']);IWebElement btn_tag_3=driver.FindElement(By.XPath(“/*[@data testid='tag_open']);IWebElement btn_tag_4=driver.FindElement(By.XPath(“/*[@data testid='tag_selected']);IWebElement btn_tag_5=driver.FindElement(By.XPath(“/*[@data testid='tag_disabled']);IWebElement btn_tag_6=driver.FindElement(By.XPath(“/*[@data testid='tag_free'])更新的唯一区别是XPath定位器使用的字符串。在我的示例中,您只需要在数组中进行更改。我将补充我的答案来说明这一点。
By[] buttonsBy = {
     By.XPath("//*[@data-testid='tag_eject']"),
     By.XPath("//*[@data-testid='tag_close']"),
     By.XPath("//*[@data-testid='tag_open']"),
     By.XPath("//*[@data-testid='tag_selected']"),
     By.XPath("//*[@data-testid='tag_disabled']"),
     By.XPath("//*[@data-testid='tag_free']")
};