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

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

1
Python Seleniumを使用してテキストボックス(入力)に値を見つけて挿入するにはどうすればよいですか?
私は次のHTML構造を持っており、Seleniumを使用して次の値を入力しようとしていますNUM。 <div class="MY_HEADING_A"> <div class="TitleA">My title</div> <div class="Foobar"></div> <div class="PageFrame" area="W"> <span class="PageText">PAGE <input id="a1" type="txt" NUM="" /> of <span id="MAX"></span> </span> </div> これが私が書いたコードです: head = driver.find_element_by_class_name("MY_HEADING_A") frame_elem = head.find_element_by_class_name("PageText") # Following is a pseudo code. # Basically I need to enter a value of 1, 2, 3 etc in …

10
Selenium WebDriver C#を使用してドロップダウンからオプションを選択するにはどうすればよいですか?
オプションを選択してWebテストを試みていました。例はここにあります:http://www.tizag.com/phpT/examples/formex.php オプションパーツの選択を除いて、すべてがうまく機能します。値またはラベルでオプションを選択するにはどうすればよいですか? 私のコード: using OpenQA.Selenium.Firefox; using OpenQA.Selenium; using System.Collections.ObjectModel; using System.Text.RegularExpressions; using System.Threading; using System.Diagnostics; using System.Runtime.InteropServices; class GoogleSuggest { static void Main() { IWebDriver driver = new FirefoxDriver(); //Notice navigation is slightly different than the Java version //This is because 'get' is a keyword in C# driver.Navigate().GoToUrl("http://www.tizag.com/phpT/examples/formex.php"); IWebElement query …

10
ボタンをクリックすると開く新しいブラウザウィンドウに切り替えるにはどうすればよいですか?
ボタンをクリックすると、検索結果を含む新しいブラウザウィンドウが開くという状況があります。 新しく開いたブラウザウィンドウに接続してフォーカスする方法はありますか? そしてそれを操作してから、元の(最初の)ウィンドウに戻ります。

18
Seleniumを使用して証明書を処理する方法は?
Seleniumを使用してブラウザを起動しています。ブラウザに証明書を受け入れるかどうかを要求するWebページ(URL)をどのように処理できますか? Firefoxでは、次のような証明書を受け入れるように求めるWebサイトがある場合があります。 Internet Explorerブラウザーでは、次のようなメッセージが表示される場合があります。 Google Chromeの場合: 質問を繰り返します。Selenium(Pythonプログラミング言語)でブラウザー(Internet Explorer、Firefox、およびGoogle Chrome)を起動したときに、Webサイトの証明書の受け入れを自動化するにはどうすればよいですか?

2
動的ページ用のスクレイプ付きセレン
Scrapyを使用して、Webページから製品情報を取得しようとしています。私のスクレイピングされるWebページは次のようになります。 10個の製品を含むproduct_listページから始まります 「次へ」ボタンをクリックすると、次の10個の製品が読み込まれます(URLは2つのページ間で変更されません) LinkExtractorを使用して、各製品リンクを製品ページにたどり、必要なすべての情報を取得します next-button-ajax-callを複製しようとしましたが、機能しません。そこで、セレンを試してみます。別のスクリプトでSeleniumのWebドライバーを実行できますが、scrapyと統合する方法がわかりません。スクレープスパイダーのセレン部分はどこに置けばいいですか? 私のクモは次のようにかなり標準的です: class ProductSpider(CrawlSpider): name = "product_spider" allowed_domains = ['example.com'] start_urls = ['http://example.com/shanghai'] rules = [ Rule(SgmlLinkExtractor(restrict_xpaths='//div[@id="productList"]//dl[@class="t2"]//dt'), callback='parse_product'), ] def parse_product(self, response): self.log("parsing product %s" %response.url, level=INFO) hxs = HtmlXPathSelector(response) # actual data follows どんなアイデアでも大歓迎です。ありがとうございました!

18
Seleniumエラー-リモートWebDriverへのHTTP要求が60秒後にタイムアウトしました
私はSeleniumを数か月使用しており、内部テストプロセスの一部を自動化するために使用しています。スクリプトは問題なく通過しています。最近、FF 27.01を使用してC#2.40.0 Webドライバーにアップグレードしましたが、スクリプトがランダムな場所で失敗し、次のエラーが発生します。 [Portal.SmokeTest.SmokeRunTest.Booking] TearDown method failed. OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL htt(p)://localhost:7055/hub/session/56e99e88-ba17-4d12-bef1-c6a6367ccc2f/element timed out after 60 seconds. ----> System.Net.WebException : The operation has timed out TearDown : OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL htt(p)://localhost:7055/hub/session/56e99e88-ba17-4d12-bef1-c6a6367ccc2f/window timed out …

12
Pythonでプロキシを使用してSeleniumWebdriverを実行する
PythonでSeleniumWebdriverスクリプトを実行して、いくつかの基本的なタスクを実行しようとしています。Selenium IDEインターフェースを介してロボットを実行すると(つまり、GUIにアクションを繰り返すだけで)、ロボットを完全に機能させることができます。ただし、コードをPythonスクリプトとしてエクスポートし、コマンドラインから実行しようとすると、Firefoxブラウザーは開きますが、開始URLにアクセスできません(コマンドラインにエラーが返され、プログラムが停止します)。これは、アクセスしようとしているWebサイトなどに関係なく発生します。 デモの目的で、ここに非常に基本的なコードを含めました。返されるエラーはプロキシによって生成されているように見えるため、コードのプロキシセクションを正しく含めていないと思います。 どんな助けでも大歓迎です。 以下のコードは、単にwww.google.ieを開いて、「selenium」という単語を検索するためのものです。私にとっては、空のFirefoxブラウザを開いて停止します。 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException import unittest, time, re from selenium.webdriver.common.proxy import * class Testrobot2(unittest.TestCase): def setUp(self): myProxy = "http://149.215.113.110:70" proxy = Proxy({ 'proxyType': ProxyType.MANUAL, 'httpProxy': myProxy, 'ftpProxy': myProxy, 'sslProxy': myProxy, 'noProxy':''}) self.driver = …


20
Selenium Webdriverを使用して、ページ全体ではなく特定の要素のスクリーンショットをキャプチャするにはどうすればよいですか?
現在、SeleniumWebDriverを使用してスクリーンショットをキャプチャしようとしています。しかし、私はページ全体のスクリーンショットしか取得できません。ただし、私が望んでいたのは、ページの一部をキャプチャすること、またはIDや特定の要素ロケーターに基づいて特定の要素だけをキャプチャすることです。(たとえば、image id = "Butterfly"で写真をキャプチャしたい) 選択したアイテムまたは要素ごとにスクリーンショットをキャプチャする方法はありますか?

5
2つのiframeを比較して違いを視覚的に取得する方法は?
ケース: 私には2つのiframeがあり、両方に多くのdivと他のコントロールがあるので、両方のiframeは中規模のHTML Webサイトのようなものです。両方を比較して違いを見つけたいです。 私はここでさまざまなオプションを考えました: 解決策1: 2つのiframeの完全なスクリーンショットを取り、スクリーンショットの不一致領域にグリッドを描画するPythonの枕ライブラリを使用して両方のスクリーンショットを比較します。しかし、ここで問題となるのは、iframeの完全なスクリーンショットを撮ることができるコードがインターネット上で見つからなかったことです(スクロールバー付きの長いiframeがあります)。私はSOでほぼすべての答えを試しましたが、すべては通常のページで機能していますが、iframeでは機能しません。 リファレンス:https : //blog.rinatussenov.com/automating-manual-visual-regression-tests-with-python-and-selenium-be66be950196 解決策2:何らかの方法ですべてのHTMLコードをiframeから取得して比較しますが、2つのiframeで異なるまたは不一致のHTMLコードが見つかるため、結果を分析するのは簡単ではありません。これはテキスト比較のようなものであり、私が信じている良い解決策ではありません。 したがって、PythonまたはJavaScriptを使用してiframeの完全なスクリーンショットを撮ることができるコード、または 2つのiframeを比較して違いを見つけることができるいくつかのより良いオプションを探しています。 私は以下のようにグーグルが見つけるほとんどすべての答えを試しました: :全体のHTMLはインラインフレーム内にあるどこサンプルインラインフレームをここに与えられているhttps://grapesjs.com/demo.html、いくつかのコードは、このIFRAMEのフルスクリーンショットを撮ることができた場合は、私のために、比較しやすいだろう。

9
Chromedriver 78で発生する可能性のある問題、SeleniumがChromeで開かれたPDFのWeb要素を見つけられない
私のGoogle Chromeがバージョン78に更新されない限り、私のコードは問題なく動作しました。また、chromedriverをバージョン78.0.3904.70に更新しました。したがって、Selenium WebDriverとJavaを使用してid = 'plugin'のWebElementを見つけることができなくなりました。 <html> <div id="content"> <embed id="plugin" type="application/x-google-chrome-pdf" src="http://??????????/offer_printed.php?printable=yes&reanudar=&> </div> </html> その部分以外は、私のテストは問題なく機能しています。以前に同様の問題が発生したことはありません。WebElement id = 'content'も見つけようとしましたが、同じエラーが発生します。 WebDriverWait wait = new WebDriverWait (driver, 90); WebElement scrollvalid = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("plugin"))); scrollvalid.sendKeys(Keys.PAGE_DOWN); scrollvalid.sendKeys(Keys.PAGE_DOWN); 私の自動化スクリプトはPDF要素を見つけ、ページを下にスクロールする必要があります。代わりに、次のエラーが表示されます:org.openqa.selenium.TimeoutException:By.id:プラグインによって検出された要素の可視性を待機して90秒後にタイムアウトしました 誰かが同様の問題に直面していますか?前もって感謝します。

2
12296:26672:0420 / 163936.459:ERROR:browser_switcher_service.cc(238)「Selenium Python」のXXX Init()エラー
バージョン81.0.4044.113(公式ビルド)(64ビット)を使用しています。これまでは発生しておらず、コードは完全に問題なく機能していました。しかし、数日後にもう一度実行すると、このエラーが発生しました。 これらのモジュールを使用しています-> from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException import csv import time from tkinter import * def Authorization(): time.sleep(15) username = driver.find_element_by_id("userInput") username.send_keys('username') driver.find_element_by_xpath("//*[@id='login-button']").click() time.sleep(5) password = driver.find_element_by_xpath("//*[@id='passwordInput']") password.send_keys('password') submit_button = driver.find_element_by_xpath("//*[@id='login-button']").click() def Extractor(): …

4
Gmailアカウントへのサインインが失敗する(セレン自動化)
最初のステップとして、Gmailアカウントにログインする必要があるSeleniumサービスがあります。この機能は数週間前に機能していましたが、突然ログインが失敗し始め、ブラウザにこのエラーが表示され、セレンのChromeとFirefoxの両方のドライバで試しました- このエラーは、seleniumサービスが電子メール、パスワードを挿入し、サインインボタンをクリックした後に発生します。同様のエラーがGoogleサポートフォーラム(https://support.google.com/accounts/thread/10916318?hl=en)でも報告され、「Googleはログインフローに自動化ツールの検出を導入しているようです!」しかし、このスレッドには解決策はありません。 役に立つかもしれないその他の詳細- Seleniumで開いたブラウザで、Googleアカウントに手動でログインできません。 しかし、Google Chromeアプリケーションでこれらのアカウントに手動でログインできます。 コードを確認する必要がある場合はお知らせください。ここに投稿します。前もって感謝します! 参照する追加サンプルコードを編集します。 public void loginGoogleAccount(String emailId, String password) throws Exception { ChromeOptions options = new ChromeOptions(); options.addArguments("--profile-directory=Default"); options.addArguments("--whitelisted-ips"); options.addArguments("--start-maximized"); options.addArguments("--disable-extensions"); options.addArguments("--disable-plugins-discovery"); WebDriver webDriver = new ChromeDriver(options); webDriver.navigate().to("https://accounts.google.com"); Thread.sleep(3000); try { WebElement email = webDriver.findElement(By.xpath("//input[@type='email']")); email.sendKeys(emailId); Thread.sleep(1000); WebElement emailNext = webDriver.findElement(By.id("identifierNext")); emailNext.click(); Thread.sleep(1000); WebDriverWait wait …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.