簡體   English   中英

選擇正確的CssSelector或TagName

[英]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.XPathgetAttribute進行此操作。 如下所示:

//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']選擇具有正確類的表行,這些表行是表主體的直接子代

如果您不熟悉XPath,請參見此處此處

我沒有測試C#代碼,但是我確實在Chrome中測試了XPath查詢,並且它選擇了正確的5個表行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM