見出し画像

例外を投げないfindElement@2021/6/8

findElementsだと、例外投げないですが、全部、取ってくる必要も無いな~、って考えたら、こうなりました。単に要素が見つからない時は、例外じゃなくてnullでいい、ってことです。TypeScriptで書いてます。thenでコールバック関数を2個取るっていうのが、「アレ?見慣れないなぁ。」ってなりました。ググったけど、なかなか出てこず。。

   public async _findElement(xpath: string): Promise<WebElement | null> {
       return await this.driver.findElement(By.xpath(xpath)).then(
           (elem: WebElement) => {
               // 成功時。
               return elem;
           },
           (err: Error) => {
               // 失敗時。
               if (err.name === 'NoSuchElementError') {
                   return null;
               }
               throw err;
           }
       );
   }

それだけ。

あ、そういや、Selenium 4.0.0、β4まで出てますね。

https://www.npmjs.com/package/selenium-webdriver

ぼちぼちリリースですね。リリースされたら、さっそく動かします。最近、これしかやることないので。。

では、また。


この記事が気に入ったらサポートをしてみませんか?