テストにはSelenium RCを使用します。次に、負荷テストを実行するために、並列テストケースを実行します。ブラウザを開かずにそれらを実行する方法はありますか?
Centosでセットアップするには(すべてのインストールをルートとして実行)
インストールpipダウンロード https://bootstrap.pypa.io/get-pip.py
python get-pip.py
Seleniumのインストールシステムにpipがある場合は、Pythonバインディング:pip install -U Seleniumをインストールまたはアップグレードするだけです。
または、PyPI(例:Selenium-2.53.1.tar.gz)からソース配布物をダウンロードし、アーカイブを解除して実行できます:
python setup.py install
プログラムをインストールします:pyvirtualdisplay
pip install pyvirtualdisplay
yum install Xvfb libXfont Xorg
次に、スクリプトを変更して、**および**内に太線を追加します
**from pyvirtualdisplay import Display**
from Selenium import webdriver
from Selenium.webdriver.common.by import By
from Selenium.webdriver.common.keys import Keys
from Selenium.webdriver.support.ui import Select
from Selenium.common.exceptions import NoSuchElementException
from Selenium.common.exceptions import NoAlertPresentException
import unittest, time, re
class SeleniumDemo(unittest.TestCase):
def setUp(self):
**self.display = Display(visible=0, size=(800, 600))
self.display.start()**
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = "http://www.soastastore.com/"
self.verificationErrors = []
self.accept_next_alert = True
def tearDown(self):`enter code here`
self.driver.quit()
***self.display.stop()***
self.assertEqual([], self.verificationErrors)
はい。ただ PhantomJSをインストール 。
次に、この行を変更します。
driver = webdriver.Firefox()
に:
driver = webdriver.PhantomJS()
コードの残りの部分を変更する必要はなく、ブラウザは開きません。
デバッグのために、コードのさまざまなステップでdriver.save_screenshot('screen.png')
を使用するか、Firefoxに再度切り替えます。
if os.getenv("environment") == "production":
driver = webdriver.PhantomJS()
else:
driver = webdriver.Firefox()
Seleniumをヘッドレスで実行できます。次の質問/回答をご覧ください。 Selenium RCでブラウザーを非表示にすることは可能ですか?
特にパフォーマンスの負荷テストについては、 Apache JMeter をご覧ください。
これを試して
op = webdriver.ChromeOptions()
op.add_argument('headless')
driver = webdriver.Chrome(options=op)
常にドキュメントに従ってください。これが Selenium doc の内容です。 スタンドアロンjar を提供します。
スタンドアロンjarをダウンロードします。コマンドで実行します
Java -jar Selenium-server-standalone.jar
これで、スタンドアロンサーバーが起動します。
以下のようにウェブドライバーを設定すると、残りの部分はそのままになります。
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities={'browserName': 'htmlunit', 'version': '2', 'javascriptEnabled': True})
要約コードは次のようになります。
from Selenium import webdriver
from Selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from Selenium.webdriver.common.keys import Keys
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities={'browserName': 'htmlunit', 'version': '2',
'javascriptEnabled': True})
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()
可能ですが、標準のFirefoxドライバーではできません/ chrome /など.
PhantomJSをインストールする必要があります。 WebDriverをphantomJSドライバーのインスタンスに割り当てるだけです:
driver = webdriver.PhantomJS()
ここでコードを実行すると、ブラウザウィンドウは開きません。