我正在使用C#中的Selenium API。 我尝试读取脚本并从中获取所需的值。
string attackable_villages = web.FindElement(By.XPath("//*[@id='content_value']/script[1]")).GetAttribute("innerHTML");
richTextBox1.Text = attackable_villages;
我得到的结果:
result.scrollBound = {
x_min: 0,
x_max: 999,
y_min: 0,
y_max: 999
};
result.tileSize = [53, 38];
result.screenKey = 'bf14559d';
result.topoKey = 4133874391;
还有更多..
但是有这个:
result.thisiswhatiwant= [1value1, 1value2, 1value3, 1value4..], [2value1, 2value2, 2value3, ...], [...]
如何在没有其余数据的情况下获取该数组,并在"],"
我希望你能帮助我!
答案 0 :(得分:1)
// Split the script in its individual statements
var splitArray = script.Split(';');
// Get the statement you're interested in
var line = splitArray.Where(x => x.Contains("result.thisiswhatiwant")).First();
// Remove all characters except numbers and commas, then split by comma
var values = Regex.Replace(line, "[^0-9,]", string.Empty).Split(',');
使用此输入进行测试:
string script = "test; result.thisiswhatiwant=[1,2,3]; three;";
给我一个长度为3的数组(分别为1/2/3)。
如果语句只出现一次,您也可以使用Single(...)
而不是Where(...).First()
。