以下は、要素が存在する私のスクリプトです。私はこのセレクタ与えるとき:セレンIDEでSelenium-pythonのCSSセレクタの角括弧[?]の問題
css=input[name='flightSearchParam[3].originAirport']
をそれが私にこの要素を見つけることが、私はセレンのrcでこれを実行すると、それはそれを見つけることができません。私はそれが大括弧で問題だと思う。
この要素を見つけるには、セレンrcで何を変更する必要がありますか?
Windows XPとポーランド文化で実行します。
スクリプトを実行する準備ができました。
# -*- coding: utf-8 -*-
from selenium import selenium
import unittest, time, re
class Untitled(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium("localhost", 5555, "*chrome", "http://www.aa.com/")
self.selenium.start()
def test_untitled(self):
sel = self.selenium
sel.open("/international/internationalSplashAccess.do?countryCodeForIP=PL")
sel.click("localeSubmit")
sel.wait_for_page_to_load("30000")
for i in range(60):
try:
if sel.is_element_present("aa-hp-multi-city-link2"): break
except: pass
time.sleep(1)
else: self.fail("time out")
sel.click("aa-hp-multi-city-link2")
sel.click("flightSearchForm.button.reSubmit")
sel.wait_for_page_to_load("30000")
for i in range(60):
try:
if sel.is_element_present(u"css=input[name='flightSearchParam[3].originAirport']"): break
except: pass
time.sleep(1)
else: self.fail("time out")
def tearDown(self):
self.selenium.stop()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
ボディ用:
conn.request("POST", "/selenium-server/driver/", body, headers)
u'cmd=isElementPresent&1=css%3Dinput%5Bname%3DflightSearchParam%5B2%5D.originAirport%5D&sessionId=02b3341a3fee46f5a1e6d9c13d6e8916'
EDIT
私はsel.is_element_present("dom=document.getElementsByName('flightSearchParam[3].originAirport')[0]"):
に変更し、それがこの要素を見つけます。しかし、私はまだCSSがここではうまくいかない理由をまだ知りません:/
あなたを投稿することができあなたが一致させたいhtmlコード – karlcow
CSS(XPath、多分?)以外のセレクタを採用する方が良いと思います。 – rs79