【发布时间】:2021-12-24 03:03:52
【问题描述】:
我刚开始使用 C# 进行编码,但一直收到此错误“索引超出了数组的范围。”我不知道我做错了什么有人能帮忙吗?我不断收到这条消息
索引超出了数组的范围。
我试着环顾四周,但没有找到任何东西。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
ChromeDriver driver = new ChromeDriver(@"C:\webdrivers");
//textbox input
// string quest = question1.Text;
//random choise
var random = new Random();
var Names = question1.Text.Split();
int index = random.Next();
//the error is here\\
string randomName = Names[index];
driver.FindElement(By.ClassName("whsOnd")).SendKeys(randomName);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
ChromeDriver driver = new ChromeDriver(@"C:\webdrivers");
ChromeDriver drv; Thread th;
string url = "google.com";
driver.Navigate().GoToUrl(url);
}
}
【问题讨论】:
-
将
int index = random.Next();更改为int index = random.Next(Names.Length); -
random.Next()会给你一个介于 0 和 2147483647 之间的数字,Names数组中没有那么多项目。 -
调试器是你的朋友。在
string randomName = Names[index];创建一个断点并查看var Names存储了多少项目以及您的index值是多少。如果index大于Names的数量或小于 0 - 这就是您获得异常的原因。 -
我还有 1 个问题我有一个列表,该列表连接到一个文本框,该部分工作正常,但问题是当我发送名称时,我希望它选择第一个和第二个,依此类推...我需要编写发送每个名称所需的代码量还是有办法解决它?对不起,如果这个问题很愚蠢但真的很困惑。对不起。
标签: c# selenium error-handling