2017-12-27 5 views
0

私は、セレンを使用して、図表から投稿を抽出しています。したがって、画像srcとそのテキストを取得します。問題は、それを抽出している間、そのような投稿のために同じsrcと異なるテキストを擦っているということです。

はここセレンを使用して同じ結果を抽出する#

var options = new ChromeOptions(); 
options.AddArguments("--disable-gpu"); 
var driverService = ChromeDriverService.CreateDefaultService(); 
driverService.HideCommandPromptWindow = true; 
var dr = new ChromeDriver(driverService, options); 
for (int d = 0; d < listBox1.Items.Count; d++) 
{ 
    dr.Navigate().GoToUrl("https://www.instagram.com/" + listBox1.Items[d].ToString()); 
    var number = dr.FindElementByClassName("_fd86t").Text; 
    Thread.Sleep(100); 
    dr.FindElementByClassName("_si7dy").Click(); 
    for (int s = 0; s < Convert.ToInt32(numericUpDown1.Value); s++) 
    { 
     Thread.Sleep(1000); 

     if (dr.FindElements(By.XPath("/html/body/div[4]/div/div[2]/div/article/div[1]/div/div/div/div[2]/a")).Count != 0) 
     { 
      dr.Keyboard.SendKeys(OpenQA.Selenium.Keys.Right); 
     } 
     else 
     { 
      var src = dr.FindElementByClassName("_2di5p").GetAttribute("src"); 
      var pra = dr.FindElementByClassName("_ezgzd").FindElement(By.TagName("span")).Text; 
      this.Invoke(new MethodInvoker(delegate() 
      { 
       dataGridView1.Rows.Add(src.ToString(), pra.ToString()); 

      })); 
      dr.Keyboard.SendKeys(OpenQA.Selenium.Keys.Right); 

     } 
    } 
} 
+0

わかりませんが、周囲の要素だけでなく、その要素の他のすべての属性も確認する必要があります。 –

+0

nah関連船 –

答えて

0

これを試してみてください私のコードです: ""

するクラス名が追加することで、XPathのにすることで検索置き換え関連ノードを選択します。それ以外の場合は、このクラスの最初の発生を選択します。

dr.FindElementByXpath(".//*[@class='_si7dy'").GetAttribute("src"); 
+0

はありませんが、それでも問題はありません –

関連する問題