![](/img/trans.png)
[英]Selecting dropdownlist using Selenium javascript error: a.tagName.toUpperCase is not a function
[英]Selecting the right CssSelector or TagName
基本信息
我拥有自己开发的供个人使用的软件,因为我将其用作学习硒的方式(通过反复试验,到目前为止,我已经了解了基础知识,因为我已经学习过它)
该软件做什么
它将分析网站上列表中最活跃的5只股票,并将其打印到软件上(很简单吧?)
问题
目前,我已经做到了,所以它从该网站的列表中拉出了名称和最高项目的百分比(以前是最高网站),但是后来变成了第三名,而当我实际按下时该按钮是(正如我刚才解释的那样),它拉出第三个选项,该选项曾经是第一个选项
我想要它做什么
我需要正确的TagName或CssSelector来显示1-5中列表中的内容,即使它发生更改,我希望它在网站更改时也能更改
例
我按下按钮(label11_Click)(对不起,我的名字不好)
它显示了前5个项目
我关闭应用程序并等待24小时
列表在网站上更改
我在24小时后重新打开应用程序
我按下相同的按钮(label11_Click)
它显示了新的前5个项目
private void label11_Click(object sender, EventArgs e)
{
var getTopFive = new FirefoxDriver();
getTopFive.Navigate().GoToUrl("https://www.tradingview.com/");
IList<IWebElement> movies = getTopFive.FindElements(By.CssSelector("[data-symbol='NASDAQ:SIRI']"));
for (int i = 0; i < 1; ++i)
{
activeTextBox.Text = movies[i].Text;
}
}
private void activePan_Paint(object sender, PaintEventArgs e)
{
Label scan = new Label();
scan.Text = "Test";
}
private void pictureBox2_Click(object sender, EventArgs e)
{
var homePage = new FirefoxDriver();
homePage.Navigate().GoToUrl("http://www.vargadevelopments.com");
}
private void label1_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
列表: https : //embed.gyazo.com/75b4901627b3b7fc1736cc3d333a1995.png
https://embed.gyazo.com/60e4766238cc6668805b4c53947dfff7.png
听起来您想选择表,然后获取表中的每个符号名称。 您可以使用By.XPath
和getAttribute
进行此操作。 如下所示:
//Select the table rows that have the symbol names
var tableRows = getTopFive.FindElements(By.XPath("//*[@class='three-colomns-colomn active-quotes quote-tabbed-widget']//table/tbody/tr[@class='quote-ticker-inited']"));
//Loop through each row returned and get the full symbol name
foreach(var tableRow in tableRows )
{
//Get the full symbol name (eg. NASDAQ:ABC)
string fullSymbol = tableRow.getAttribute("data-symbol");
//Separate the market and symbol name
string market = fullSymbol.Substring(0,fullSymbol.indexof(":") - 1);
string symbol = fullSymbol.Substring(fullSymbol.indexof(":") + 1);
}
快速了解XPath的选择:
//div[@class='three-colomns-colomn active-quotes quote-tabbed-widget']
选择最活跃表的容器 //table
选择table元素,该元素是容器的间接子级 /tbody
选择作为表的直接子表的表主体 /tr[@class='quote-ticker-inited']
选择具有正确类的表行,这些表行是表主体的直接子代 我没有测试C#代码,但是我确实在Chrome中测试了XPath查询,并且它选择了正确的5个表行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.