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

WebDriverは、実際のユーザーを模倣してWebブラウザーを制御するためのAPIです。主に自動テストに使用されます。WebDriverには複数の言語バインディングとドライバーがあります(さまざまなブラウザーを制御できます)。質問がそれらの1つに固有のものである場合は、適切なタグも含めるようにしてください。

17
Selenium WebDriver:JavaScriptを含む複雑なページが読み込まれるのを待つ
SeleniumでテストするWebアプリケーションがあります。ページの読み込み時に実行されるJavaScriptはたくさんあります。 このJavaScriptコードはあまりよく書かれていませんが、何も変更できません。したがって、DOM with findElement()methodに要素が表示されるのを待つことはオプションではありません。 Javaで汎用的な関数を作成して、ページの読み込みを待機したいのですが、可能な解決策は次のとおりです。 WebDriverからJavaScriptスクリプトを実行し、結果をdocument.body.innerHTML文字列変数に格納しますbody。 body変数を以前のバージョンのと比較しますbody。それらが同じ場合は、カウンターをインクリメントし、notChangedCountそれ以外の場合notChangedCountはゼロに設定します。 少し待ってください(たとえば50ミリ秒)。 ページが一定時間(たとえば500ミリ秒)変更されていない場合はnotChangedCount >= 10、ループを終了します。それ以外の場合は、最初のステップに戻ります。 それは有効な解決策だと思いますか?

11
Seleniumは既存のブラウザセッションと対話できますか?
Selenium(WebDriverが望ましい)が、Seleniumクライアントを起動する前にすでに実行されているブラウザーと通信して動作できるかどうかを誰かが知っていますか? つまり、SeleniumがSeleniumサーバーを使用せずにブラウザーと通信できるかどうかを意味します(たとえば、手動で起動されたInternet Explorerなど)。

15
JavaでSelenium-WebDriverに数秒待つように依頼するにはどうすればよいですか?
Java Selenium-WebDriverに取り組んでいます。追加した driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS); そして WebElement textbox = driver.findElement(By.id("textbox")); アプリケーションがユーザーインターフェイスを読み込むのに数秒かかるからです。したがって、2秒の暗黙の待機を設定しました。しかし、要素のテキストボックスを見つけることができませんでした 次に追加します Thread.sleep(2000); 今ではうまくいきます。どちらが良い方法ですか?

10
Selenium:FirefoxProfile例外がプロファイルをロードできません
パーこの前の質問私は、バージョン2.0.1へのセレンを更新しかし、今、私は、プロファイルのファイルが下に存在する場合でも、別のエラーがあります/tmp/webdriver-py-profilecopy: ファイル「/home/sultan/Repository/Django/monitor/app/request.py」、行236、実行中 browser = Firefox(プロファイル) __init__内のファイル "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py"、46行目 self.binary、timeout)、 __init__内のファイル "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py"、46行目 self.binary.launch_browser(self.profile) launch_browser内のファイル "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py"、44行目 self._wait_until_connectable() ファイル「/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py」、87行目、_wait_until_connectable内 raise WebDriverException( "プロファイルをロードできません。プロファイルディレクトリ:%s"%self.profile.path) selenium.common.exceptions.WebDriverException:プロファイルを読み込めません。プロファイルディレクトリ:/ tmp / webdriver-py-profilecopy なにが問題ですか?この問題を解決するにはどうすればよいですか?

3
CSSセレクター(IDにはテキストの一部が含まれています)
質問があります。私はこのような要素を持っています: <a> id = someGenerated Some:Same:0:nameの要素 <a> id = someGenerated Some:Same:0:surnameの要素 <a> id = someGenerated Some:Same:1:nameの要素 <a> id = someGenerated Some:Same:1:surnameの要素 名前を取得するにはCSSセレクターが必要です。問題は、どうやって入手したらいいのかわからないことです。私は試しましたa[id*='Some:Same']-それはすべての<a>要素を返しました。idがnameで終わる要素を取得した後。しかし、私はこの考えが好きではありません。他のセレクターでもできると思います。

9
SeleniumWebドライバーとJava。要素は点(x、y)でクリックできません。他の要素はクリックを受け取ります
明示的な待機を使用しましたが、警告があります。 org.openqa.selenium.WebDriverException:要素はポイント(36、72)でクリックできません。他の要素はクリックを受け取ります:...コマンド期間またはタイムアウト:393ミリ秒 使用してThread.sleep(2000)も警告は表示されません。 @Test(dataProvider = "menuData") public void Main(String btnMenu, String TitleResultPage, String Text) throws InterruptedException { WebDriverWait wait = new WebDriverWait(driver, 10); driver.findElement(By.id("navigationPageButton")).click(); try { wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector(btnMenu))); } catch (Exception e) { System.out.println("Oh"); } driver.findElement(By.cssSelector(btnMenu)).click(); Assert.assertEquals(driver.findElement(By.cssSelector(TitleResultPage)).getText(), Text); }

3
Seleniumから要素の属性を取得するにはどうすればよいですか?
私はPythonでSeleniumを使用しています。要素のを取得して.val()、<select>それが期待どおりであることを確認したいと思います。 これは私のコードです: def test_chart_renders_from_url(self): url = 'http://localhost:8000/analyse/' self.browser.get(url) org = driver.find_element_by_id('org') # Find the value of org? これどうやってするの?Seleniumのドキュメントには、要素の選択についてはたくさんあるようですが、属性については何もありません。

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

10
ChromeブラウザでWebDriverを実行すると、ブラウザが正しく起動しても「ローカル接続のみが許可されます」というメッセージが表示されます
WebDriverを使用してChromeブラウザを実行すると、コンソールに次のメッセージが表示されます。解決方法を教えてください。 "ポート22582でChromeDriver(v2.10.267521)を起動しています" "ローカル接続のみが許可されています。" これが私のサンプルコードです: public class Browserlaunch { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32 \\chromedriver.exe"); WebDriver driver = new ChromeDriver() ; driver.get("http://webdunia.com"); driver.close(); driver.quit(); } }

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.