タグ付けされた質問 「selenium-webdriver」

Selenium-WebDriverは、さまざまなプログラミング言語(「言語バインディング」)でブラウザを制御するためのWebDriver APIを提供します。このタグを使用する場合は、使用しているプログラミング言語のタグも追加してください。


14
Pythonを使用してSelenium WebDriverでWebElementのHTMLソースを取得する
Pythonバインディングを使用してSelenium WebDriverを実行しています。 from selenium import webdriver wd = webdriver.Firefox() 私は次のようにwebelementを取得できることを知っています。 elem = wd.find_element_by_css_selector('#my-id') そして、私は完全なページソースを取得できることを知っています... wd.page_source しかし、「要素ソース」を取得する方法はありますか? elem.source # <-- returns the HTML as a string PythonのセレンWebドライバーのドキュメントは基本的に存在せず、その機能を有効にしているように見えるコードには何もありません。 要素(およびその子)のHTMLにアクセスする最良の方法について何か考えはありますか?

30
「要素はクリックできません」エラーのデバッグ
これはChromeでのみ表示されます。 完全なエラーメッセージは次のとおりです。 「org.openqa.selenium.WebDriverException:要素はポイント(411、675)ではクリックできません。他の要素はクリックを受け取ります:...」 「クリックを受け取る」要素は、問題の要素の横にあり、その上ではなく、重なっておらず、ページ内を移動していません。 オフセットを追加しようとしましたが、それも機能しません。アイテムは表示されたウィンドウ上にあり、スクロールする必要はありません。


10
Selenium Webdriver(Python)で特定のテキストを含む要素を見つけるにはどうすればよいですか?
Seleniumで複雑なJavaScriptインターフェースをテストしようとしています(Pythonインターフェースを使用して、複数のブラウザー間で)。次の形式のボタンがいくつかあります。 <div>My Button</div> 「My Button」(または「my button」や「button」などの大文字と小文字を区別しない部分一致)に基づいてボタンを検索できるようにしたい 私はこれが驚くほど難しいことに気づき、明らかな何かを見逃しているように感じます。私がこれまでに持っている最高のものは: driver.find_elements_by_xpath('//div[contains(text(), "' + text + '")]') ただし、これは大文字と小文字が区別されます。私が試したもう1つのことは、ページ上のすべてのdivを反復処理し、element.textプロパティを確認することです。ただし、次のような状況になるたびに: <div class="outer"><div class="inner">My Button</div></div> div.outerにも、テキストとして「My Button」があります。これを修正するために、div.outerがdiv.innerの親であるかどうかを確認しようとしましたが、それを行う方法を理解できませんでした(element.get_element_by_xpath( '..')は要素の親を返しますが、テストはdiv.outerと等しくありません)。また、ページ上のすべての要素の反復処理は、少なくともChrome Webdriverを使用すると、非常に遅くなります。 アイデア? 編集:この質問は少し漠然と出てきました。より具体的なバージョンをここで尋ねました(そして答えました):子要素のテキストを含めずに、(Python APIを介して)Selenium WebDriverで要素のテキストを取得する方法は?

9
Selenium WebDriverでJavaScriptを使用してXPathで要素を取得する方法はありますか?
私は次のようなものを探しています: getElementByXpath(//html[1]/body[1]/div[1]).innerHTML JSを使用して要素のinnerHTMLを取得する必要があります(Selenium WebDriver / Javaでそれを使用するには、WebDriverがそれ自体を見つけることができないため)。 ID属性を使用できますが、すべての要素にID属性があるわけではありません。 [修繕] 私はそれをJavaで実行するためにjsoupを使用しています。それは私のニーズにうまくいきます。



13
Pythonを使用してSeleniumでドロップダウンメニューの値を選択するにはどうすればよいですか?
ドロップダウンメニューから要素を選択する必要があります。 例えば: <select id="fruits01" class="select" name="fruits"> <option value="0">Choose your fruits:</option> <option value="1">Banana</option> <option value="2">Mango</option> </select> 1)最初にそれをクリックしなければなりません。私はこれをします: inputElementFruits = driver.find_element_by_xpath("//select[id='fruits']").click() 2)その後、良い要素を選択する必要がありますMango。 私はそれをやってみましたinputElementFruits.send_keys(...)が、うまくいきませんでした。

6
Chrome DevelopersツールまたはFirefoxのFirebugでXPath式を確認するにはどうすればよいですか?
XPathを確認するにはどうすればよいですか? Chrome Developersツールを使用して要素を検査し、XPathを形成しています。ChromeプラグインのXPathチェッカーを使用して確認しましたが、常に結果が得られるとは限りません。XPathを検証するより良い方法は何ですか。 Firebugを使用してバグを検査し、FirePathを使用して確認することも試みました。ただし、FirepathはXPathも検証します。 私の最後のオプションは、Selenium WebDriverを使用してXPathを確認することです。


18
Selenium WebDriverを使用して要素が存在するかどうかをテストしますか?
要素が存在するかどうかをテストする方法はありますか?findElementメソッドは例外で終了しますが、要素が存在しないこと、それが問題ないこと、テストの失敗ではないため、例外が解決策になることはありません。 私はこの投稿を見つけました:Selenium c#Webdriver:Wait Until Element is Present しかし、これはC#のためのものであり、私はそれがあまり得意ではありません。誰でもコードをJavaに変換できますか?申し訳ありませんが、Eclipseで試してみましたが、Javaコードでは正しく理解できません。 これはコードです: public static class WebDriverExtensions{ public static IWebElement FindElement(this IWebDriver driver, By by, int timeoutInSeconds){ if (timeoutInSeconds > 0){ var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds)); return wait.Until(drv => drv.FindElement(by)); } return driver.FindElement(by); } }

13
ChromeでSelenium WebDriverテストケースを実行する方法
私はこれを試しました WebDriver driver = new ChromeDriver(); しかし、私はエラーが出ています 失敗したテスト:setUp(com.TEST):ドライバー実行可能ファイルへのパスは、webdriver.chrome.driverシステムプロパティで設定する必要があります。詳細については、こちらのコードを参照してください。リンクから最新版をダウンロードできます ChromeでSelenium-WebDriverテストケースをテストするにはどうすればよいですか?

16
Selenium Webdriverはバックグラウンドでブラウザーウィンドウをサイレントで開くことができますか?
多くのテストを実行するセレンテストスイートがあり、新しいテストを実行するたびに、開いている他のウィンドウの上にブラウザウィンドウが開かれます。ローカル環境での作業中は非常に不快です。ウィンドウをバックグラウンドで開くようにセレンまたはOS(MAC)に指示する方法はありますか?

13
特定の条件を待つときにWebDriverによってWebページを更新する
テスト中にWebページを更新するよりエレガントな方法を探しています(私はSelenium2を使用しています)。私はF5キーを送信するだけですが、ドライバにWebページ全体を更新する方法があるかどうか疑問に思います。 while(driver.findElements(By.xpath("//*[text() = 'READY']")).size() == 0 ) driver.findElement(By.xpath("//body")).sendKeys(Keys.F5); //element appear after text READY is presented driver.findElement(By.cssSelector("div.column a")).click(); 多分手動で更新されたページ上の要素を見つけるためのいくつかのより良い解決策です

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.