since 2012-05-08
ここでは Python 環境のことを書く。
環境は MacPorts on Snow Leopard (まだLionにしていない)。。
sudo port install python27 sudo port install py27-pip sudo pip-2.7 install selenium
http://ore.saizensen.net/archives/487
とりあえず http://pypi.python.org/pypi/selenium に書いてあるサンプルは
#!/usr/bin/env python2.7
を先頭行に追加して chmod 755 して動作を確認した。
API ドキュメント http://selenium.googlecode.com/svn/trunk/docs/api/py/api.html
assertXXX がないが、実は assert は Python の statement をそのまま使う。
assert "Yahoo!" in browser.title
わかってしまえば PHP より美しい。
selenium.selenium のところに Element Locator の仕様が書かれている。
since 2012-08-08
環境は Mountain Lion を使っている。
下記のエラー(Can't load the profile)が出た:
$ python2.7 test_selenium.py Traceback (most recent call last): File "test_selenium.py", line 6, in <module> browser = webdriver.Firefox() File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 51, in __init__ self.binary, timeout), File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/firefox/extension_connection.py", line 46, in __init__ self.binary.launch_browser(self.profile) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 44, in launch_browser self._wait_until_connectable() File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 86, in _wait_until_connectable self.profile.path, self._get_firefox_output())) selenium.common.exceptions.WebDriverException: Message: "Can't load the profile. Profile Dir: /var/folders/pf/n139yg5d44n8fvr6b04s6vkh0000gn/T/tmpC4C5yY Firefox output: *** LOG addons.xpi: startup\n*** LOG addons.xpi: Skipping unavailable install location app-system-share\n*** LOG addons.xpi: checkForChanges\n*** LOG addons.xpi: No changes found\n"
下記の手順でアップデートしたら解決した:
$ sudo pip-2.7 install --upgrade selenium Downloading/unpacking selenium Downloading selenium-2.25.0.tar.gz (2.0Mb): 2.0Mb downloaded Running setup.py egg_info for package selenium warning: no files found matching 'docs/api/py/index.rst' Installing collected packages: selenium Found existing installation: selenium 2.21.2 Uninstalling selenium: Successfully uninstalled selenium Running setup.py install for selenium warning: no files found matching 'docs/api/py/index.rst' Successfully installed selenium Cleaning up...
since 2013-12-04
pip は入れてある:
>pip install selenium Downloading/unpacking selenium Downloading selenium-2.37.2.tar.gz (2.6MB): 2.6MB downloaded Running setup.py egg_info for package selenium Installing collected packages: selenium Running setup.py install for selenium Successfully installed selenium Cleaning up...
since 2014-01-24
下記のようなことを NVDA と一緒に実行すると Tab 移動は動くがクイックナビゲーション (2, Shift+2) は動かない。
クイックナビゲーションを実行するには Firefox ではなく NVDA にコマンドを送らなくてはならないのだろう。。
#!/usr/bin/env python2.7 # coding: utf-8 from __future__ import unicode_literals from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains import time baseUrl = 'http://www.nvda.jp' driver = webdriver.Firefox() driver.get(baseUrl + '/index.html') assert "NVDA日本語版 ダウンロードと説明" in driver.title ActionChains(driver).send_keys(Keys.TAB).perform() time.sleep(5) ActionChains(driver).send_keys('2').perform() time.sleep(5) ActionChains(driver).key_down(Keys.SHIFT).send_keys('2').key_up(Keys.SHIFT).perform() time.sleep(5) driver.close()