すべての要素属性を試した後、RubyMine を使用して Selenium で NoSuchElementError が発生する

概要

この Web サイト https://roomy-fire-houseboat.glitch.me/ 用にいくつかのテストを作成しようとしていますが、要素が見つかりません。 Web サイトを起動して、5 秒間のスリープを追加します。

RubyMine のエラーは次のとおりです。

Selenium::WebDriver::Error::NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#number"}
  (Session info: chrome=123.0.6312.59); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
        GetHandleVerifier [0x00534CE3+225091]
       (No symbol) [0x00464E31]
    (No symbol) [0x00309A7A]
    (No symbol) [0x0034175B]
    (No symbol) [0x0034188B]
    (No symbol) [0x00377882]
    (No symbol) [0x0035F5A4]
    (No symbol) [0x00375CB0]
    (No symbol) [0x0035F2F6]
    (No symbol) [0x003379B9]
    (No symbol) [0x0033879D]
    sqlite3_dbdata_init [0x009A9A83+4064547]
    sqlite3_dbdata_init [0x009B108A+4094762]
    sqlite3_dbdata_init [0x009AB988+4072488]
    sqlite3_dbdata_init [0x006AC9E9+930953]
     (No symbol) [0x00470804]
    (No symbol) [0x0046AD28]
    (No symbol) [0x0046AE51]
    (No symbol) [0x0045CAC0]
    BaseThreadInitThunk [0x76EB7BA9+25]
 RtlInitializeExceptionChain [0x779EBDAB+107]
        RtlClearBits [0x779EBD2F+191]
C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/remote/response.rb:55:in `assert_ok'
C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/remote/http/common.rb:83:in `new'
C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/remote/http/common.rb:83:in `create_response'
C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/remote/http/default.rb:104:in `request'
C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/remote/http/common.rb:59:in `call'
C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/remote/bridge.rb:620:in `execute'
C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/remote/bridge.rb:537:in `find_element_by'
C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/search_context.rb:63:in `find_element'

これは現在の行で、Web サイト上のテキスト ボックスを見つけるために使用しています。

driver.find_element(:id, 'number')

:css と :xpath も試しました。

要素を検査すると、次のような結果が得られます。

id = “番号” type = “テキスト”

セレクター = #番号

xpath = //*[@id="number"]

解決策

あなたのプログラムが何であるかわかりませんが、次のプログラムを作成しましたが、問題なく動作します。

require 'selenium-webdriver'

driver = Selenium::WebDriver.for :chrome

driver.navigate.to 'https://roomy-fire-houseboat.glitch.me/'

driver.find_element(id: 'number').send_keys '2'

driver.find_element(id: 'start').click

sleep 10

これを試してみて、問題が発生するかどうか教えていただけますか。