質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

1回答

4368閲覧

Python3とSelenium > 2.53 でのRemoteWebDriverの使い方について

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2016/09/03 17:51

###環境
Linux + python3 + selenium2.53(pip install -U selenium)を利用しております。
ブラウザはfirefox、IEとchromeも対応の視野に入れております。

やりたいこと

$ java -jar selenium-server-standalone-version.jar
にて起動させたプロセスにpythonコードからリモート実行させたいのですが
可能なのでしょうか。

###該当のソースコード

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 class SimpleTest(unittest.TestCase): def setUp(self): self.url = 'http://yahoo.co.jp' self.driver = webdriver.Firefox() def testAaaa(self): self.driver.get( self.url )

###試したこと
下記を試しました
from selenium.webdriver.remote.webdriver import RemoteConnection(追加)

(削除)self.driver = webdriver.Firefox() (追加)self.driver = RemoteConnection('127.0.0.1:4444')

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Python 3.5.2 + selenium 2.53.6 + Windows 7 + Firefox 48.0で確認したところでは、こうすると動かすことが出来ました。
Firefoxはv47以降はこの方式でないとダメのようです。
(私はこの辺に詳しくないので詳細は参考リンクをお読みください。)

  • selenium-server-standalone-3.0.0-beta3.jar(現時点の最新)を使う

  • geckodriverをパスに通す(下記リンク先からダウンロード)

Releases · mozilla/geckodriver
https://github.com/mozilla/geckodriver/releases

  • Marionetteを使う(下記はコード例)

lang

1import unittest 2from selenium import webdriver 3from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 4 5 6class SimpleTest(unittest.TestCase): 7 def setUp(self): 8 self.url = "http://yahoo.co.jp" 9 caps = DesiredCapabilities.FIREFOX.copy() 10 caps["platform"] = "WINDOWS" 11 caps["version"] = "7" 12 caps["marionette"] = True 13 caps["binary"] = r"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" 14 self.driver = webdriver.Remote(command_executor="http://127.0.0.1:4444/wd/hub/", desired_capabilities=caps) 15 16 def testAaaa(self): 17 self.driver.get(self.url)

他のブラウザーの場合は、Selenium Pythonのサイトを参照してください。
Firefoxの場合と同様に、ブラウザーごとのドライバーをパスに通しておく必要があります。

Chrome(v52.0.2743.116m)の場合は、self.driverのところはこれだけでできました。

lang

1self.driver = webdriver.Remote(command_executor="http://127.0.0.1:4444/wd/hub/", 2 desired_capabilities=DesiredCapabilities.CHROME)

参考リンク:

Getting Started — Selenium Python Bindings 2 documentation
http://selenium-python.readthedocs.io/getting-started.html

Selenium WebDriverでFirefox47を動かす方法 - Qiita
http://qiita.com/yssg/items/a054d67bc7c7fc39b276

WebDriver - Mozilla | MDN
https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver

java - Unable to connect to host 127.0.0.1 issue in selenium webdriver - Stack Overflow
http://stackoverflow.com/questions/38969210/unable-to-connect-to-host-127-0-0-1-issue-in-selenium-webdriver

投稿2016/09/04 17:17

argius

総合スコア9390

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/09/05 10:24

ありがとうございます。 お陰様で期待通りの動きができるようになりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問