Poniżej znajduje się mój skrypt, którego elementem jest check. Kiedy daję tego selektora:Problem z nawiasami [?] W selektorze css w Selenium-pythonie
css=input[name='flightSearchParam[3].originAirport']
w selen Ide to znajdź mi tego elementu, ale gdy uruchomię to w selen rc nie może go znaleźć. Myślę, że jest to problem z nawiasami.
Co muszę zmienić, aby znaleźć ten element przez selen rc?
go uruchomić w systemie Windows XP i Kultury Polskiej
Script jest gotowy do uruchomienia.
# -*- 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()
Korpus:
conn.request("POST", "/selenium-server/driver/", body, headers)
u'cmd=isElementPresent&1=css%3Dinput%5Bname%3DflightSearchParam%5B2%5D.originAirport%5D&sessionId=02b3341a3fee46f5a1e6d9c13d6e8916'
EDIT
zmienić go sel.is_element_present("dom=document.getElementsByName('flightSearchParam[3].originAirport')[0]"):
i znaleźć ten element. Ale nadal nie wiem, dlaczego css nie działa tutaj:/
można zamieścić swoje Kod html, który chcesz dopasować – karlcow
Myślę, że lepiej byłoby użyć selektora innego niż CSS (XPath, może?) – rs79