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