2024年7月5日金曜日

seleniumは試行錯誤が必要

 スクレイピング処理は、泥臭い作業といえる。調べてもなかなかわからないことが多い。
      public string ielFind(IWebElement iel, string xpath)
      {
          try
          {
              IWebElement reviewerElement = iel.FindElement(By.XPath(xpath));
              return reviewerElement.Text;
          }
          catch (NoSuchElementException)
          {
              return string.Empty;
          }
      }
という関数を作って classが’a1 a2'または'a1'のどちらかを取得したいときは、Or処理をいろいろ考えるより、単純に、
ielFind(iel, ".//p[@class='a1 a2']")+ ielFind(iel, ".//p[@class='a1']");
としたほうがよかった。(該当するものないときは空文字になるので)

また、非表示になっていると、取得できない。そういうときには、クリックが必要なら事前に
  IWebElement element2 = iel.FindElement(By.XPath(xpath));
  element2.Click();  などの処理を入れて表示してからだと取得できた。

ChatGPTも、基本的なところや細かいところで参考にはなったが、イレギュラー的なことになってくると、やはり人の力(試行錯誤)によらないと、解決は難しいかもしれない。(現段階では)


0 件のコメント:

コメントを投稿