スクレイピング処理は、泥臭い作業といえる。調べてもなかなかわからないことが多い。
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']");
としたほうがよかった。(該当するものないときは空文字になるので)
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 件のコメント:
コメントを投稿