本文整理汇总了Python中windmill.authoring.WindmillTestClient.execJS方法的典型用法代码示例。如果您正苦于以下问题:Python WindmillTestClient.execJS方法的具体用法?Python WindmillTestClient.execJS怎么用?Python WindmillTestClient.execJS使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类windmill.authoring.WindmillTestClient
的用法示例。
在下文中一共展示了WindmillTestClient.execJS方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: setup_module
# 需要导入模块: from windmill.authoring import WindmillTestClient [as 别名]
# 或者: from windmill.authoring.WindmillTestClient import execJS [as 别名]
def setup_module(module):
"Login and create three lists"
client = WindmillTestClient(__name__)
client.asserts.assertNode(id=u"id_username")
client.type(text=u'visa', id=u'id_username')
client.asserts.assertNode(id=u"id_password")
client.type(text=u'salakala', id=u'id_password')
client.click(value=u'login')
client.waits.forPageLoad(timeout=u'20000')
client.asserts.assertText(xpath=u"//div[@id='user-tools']/a", validator=u'Log out')
client.execJS(js='window.autorefresh_freq = -1;')
def create_list(i):
name = 'test list '+str(i)
client.asserts.assertNotNode(id=u"subscription_"+str(i))
client.asserts.assertNode(id=u"create_list_nameinput")
client.type(id=u'create_list_nameinput', text=name)
client.keyUp(id=u'create_list_nameinput', options='13,false,false,false,false,false')
client.waits.forElement(id=u"subscription_"+str(i), timeout=u'20000')
client.asserts.assertJS(js=u"$('#listmenu_listlist').is(':hidden')")
client.asserts.assertNode(id=u"lists_button")
client.click(id=u"lists_button") # show list menu
client.waits.sleep(milliseconds=u'500')
client.asserts.assertNotJS(js=u"$('#listmenu_listlist').is(':hidden')")
for i in [1,2,3]:
create_list(i)
client.click(id=u"lists_button") # hide list menu
示例2: activate_items
# 需要导入模块: from windmill.authoring import WindmillTestClient [as 别名]
# 或者: from windmill.authoring.WindmillTestClient import execJS [as 别名]
def activate_items():
client = WindmillTestClient(__name__)
#Names of items to buy and activate
itemNames = ['Water', 'Coffee', 'Beer', 'Hot milk', 'Coffee to-go']
login(client, 'root', 'root')
#Store base URL
client.storeVarFromJS(options=u"BaseUrl|window.location.href.replace(window.location.search, '')")
#Go to Shop
client.storeURL(link=u'Shop')
client.open(url=u'{$Shop}')
client.waits.forElement(id=u'items')
#Buy items
for itemName in itemNames:
client.click(jquery=(u"('a[title=%s]')[0]" % itemName))
client.click(jquery=u"('.poker_submit[onclick*=subtarget]')[0]")
#Go to medium profile to extract item IDs
client.open(url=u'{$BaseUrl}?q=poker/profile/medium')
for itemName in itemNames:
client.storeVarFromJS(options=(u'%sId|$("img[title=%s]").attr("id")' % (itemName, itemName)))
#Go and sit to a table
client.open(url=u'{$BaseUrl}')
client.waits.forElement(classname=u'jpoker_table_list_table_empty')
client.click(id=u'play-now-button')
client.waits.forElement(classname=u'jpoker_table',timeout=u'20000')
#Items activation using JS (couldn't get Windmill to select and click in the iframe)
for itemName in itemNames:
#Set item_id JS variable using a JS assertion because Windmill variables are not working in execJS
client.asserts.assertJS(js=u'!isNaN(item_id = parseInt("{$%sId}"))' % itemName)
client.execJS(js=u'os_poker_send_message({type:"os_poker_activate_item", id_item: item_id});')
#Wait for the item to be received by the player
client.waits.forElement(classname=u'poker_player_item poker_gift_%s' % itemName.replace(' ', '-'),timeout=u'7000')
client.click(classname=u'logout')
示例3: test
# 需要导入模块: from windmill.authoring import WindmillTestClient [as 别名]
# 或者: from windmill.authoring.WindmillTestClient import execJS [as 别名]
def test():
client = WindmillTestClient(__name__)
client.click(id=u'viewNavCenterRight')
client.waits.sleep(milliseconds=2000)
client.doubleClick(id=u'hourDiv1-1200')
client.waits.sleep(milliseconds=2000)
client.type(text=u'Properties Test', id=u'noteTitle')
client.type(text=u'9:00', id=u'startTime')
client.type(text=u'4:00', id=u'endTime')
client.radio(id=u'startMeridianAM')
client.radio(id=u'endMeridianPM')
client.select(id=u'eventStatus', option=u'Tentative')
client.type(text=u'A description for the properties test', id=u'noteDescription')
if client.execJS(js='1 == 0')['output']:
pass
## if client.execJS(js=''lookupNode({id: 'a_node_id'}).innerHTML")['output'] == "some test":
## pass
client.keyPress(id=u'some_id', options='a,true,false,false,false,false')
示例4: logged_in_client
# 需要导入模块: from windmill.authoring import WindmillTestClient [as 别名]
# 或者: from windmill.authoring.WindmillTestClient import execJS [as 别名]
def logged_in_client(user='test', passwd='test', client=None):
"""
Opens up the root URL. If user is not logged in, logs him in.
"""
if client is None:
client = WindmillTestClient(__name__)
client.open(url=windmill.settings['TEST_URL'] + '?clearSession=true')
client.waits.forPageLoad()
client.waits.forElement(classname='hue-loaded')
if client.execJS(js="!!$('hue-login')")["output"]:
client.waits.forElement(classname='hue-username')
client.click(jquery='(".hue-username")[0]')
client.type(classname='hue-username', text=user)
client.click(classname='hue-password')
client.type(classname='hue-password', text=passwd)
client.click(classname='hue-continue')
# Health dashboard launches at login; ideally we'd have a
# better "ready" notification.
time.sleep(2.0) # TODO: Hacky sleep!
client.waits.forElement(classname='loggedIn', timeout='20000')
return client
示例5: test_wmunti1
# 需要导入模块: from windmill.authoring import WindmillTestClient [as 别名]
# 或者: from windmill.authoring.WindmillTestClient import execJS [as 别名]
def test_wmunti1():
client = WindmillTestClient(__name__, assertions=False)
assert client.open(url=u'http://tutorial.getwindmill.com/windmill-unittests/unit_tester.html')['result']
assert client.click(id=u'subBtn')['result']
# Tests that sleeps actually wait for long enough
start = datetime.now()
assert client.waits.sleep(milliseconds=u'3000')['result']
end = datetime.now()
print (end - start)
assert ( end - start ).seconds >= 3
assert client.asserts.assertText(validator=u'', id=u'sleeper')['result']
# Tests that an 8 second sleep actually waits long enough
start = datetime.now()
assert client.waits.sleep(milliseconds=u'8000')['result']
end = datetime.now()
print (end - start)
assert ( end - start ).seconds >= 8
#execIDEJS and storeURL test
assert client.storeURL(link='AwesomeLink')
assert client.execIDEJS(js='windmill.varRegistry.items["{$AwesomeLink}"] = windmill.varRegistry.items["{$AwesomeLink}"].replace(\'http\', \'abcd\');')
assert client.asserts.assertJS(js="'{$AwesomeLink}' == 'abcd://www.awesome.com/';")
#unit tests for select by value
assert client.select(val='d', id='flavor')['result']
assert client.asserts.assertSelected(validator='d', id='flavor')['result']
assert client.asserts.assertText(validator=u'Slept', id=u'sleeper')['result']
assert client.type(text=u'my test text', id=u'junkfield')['result']
assert client.asserts.assertValue(validator=u'my test text', id=u'junkfield')['result']
assert client.radio(id=u'cougar')['result']
assert client.asserts.assertChecked(id=u'cougar')['result']
assert client.radio(id=u'duck')['result']
assert client.asserts.assertChecked(id=u'duck')['result']
assert client.check(id=u'Smallpox')['result']
assert client.asserts.assertChecked(id=u'Smallpox')['result']
assert not client.asserts.assertChecked(id=u'Mumps')['result']
assert not client.asserts.assertChecked(id=u'Dizziness')['result']
assert client.check(id=u'Mumps')['result']
assert client.asserts.assertChecked(id=u'Mumps')['result']
assert not client.asserts.assertChecked(id=u'Dizziness')['result']
assert client.check(id=u'Dizziness')['result']
assert client.asserts.assertChecked(id=u'Dizziness')['result']
assert client.type(text=u'The text area tester', name=u'story')['result']
assert client.asserts.assertValue(validator=u'The text area tester', id=u'story')['result']
assert client.select(option=u'Strawberry', id=u'flavor')['result']
assert client.asserts.assertSelected(validator=u'b', id=u'flavor')['result']
assert client.select(option=u'Rum and Raisin', id=u'flavor')['result']
assert client.asserts.assertSelected(validator=u'c', id=u'flavor')['result']
assert not client.asserts.assertSelected(validator=u'd', id=u'flavor')['result']
assert client.select(option=u'Peach and Orange', id=u'flavor')['result']
assert client.asserts.assertSelected(validator=u'd', id=u'flavor')['result']
assert client.click(id=u'clickme')['result']
assert client.asserts.assertText(validator=u'Clicked', id=u'clickme')['result']
assert client.doubleClick(id=u'dblclickme')['result']
assert client.asserts.assertText(validator=u'Double Clicked', id=u'dblclickme')['result']
assert client.mouseDown(id=u'mousedownme')['result']
assert client.asserts.assertText(validator=u'mouse downed', id=u'mousedownme')['result']
assert client.mouseUp(id=u'mouseupme')['result']
assert client.mouseOver(id=u'mouseoverme')['result']
assert client.asserts.assertText(validator=u'mouse overred',id=u'mouseoverme')['result']
assert client.mouseOut(id=u'mouseoverme')['result']
assert client.asserts.assertText(validator=u'mouseouted',id=u'mouseoverme')['result']
assert client.asserts.assertText(validator=u'mouse upped', id=u'mouseupme')['result']
assert client.asserts.assertNode(id=u'amIhere')['result']
assert client.asserts.assertProperty(validator=u'style.height|50px', id=u'amIhere')['result']
assert not client.asserts.assertNode(id=u'doesntExist')['result']
assert not client.asserts.assertNode(id=u'created')['result']
assert client.click(id=u'wfeBtn')['result']
assert client.waits.forElement(id=u'created', timeout=u'40000')['result']
assert client.asserts.assertNode(id=u'created')['result']
assert client.asserts.assertJS(js=u'window.document.title == "windmill_js_unit"')
assert client.asserts.assertIDEJS(js=u'window.document.title == "Windmill IDE"')
assert client.execJS(js=u'window.awesome = true;')
assert client.asserts.assertJS(js=u'window.awesome == true;')
assert client.execIDEJS(js=u'window.awesome = false;')
assert client.asserts.assertIDEJS(js=u'window.awesome == false;')
示例6: test_scrape_coveritlive
# 需要导入模块: from windmill.authoring import WindmillTestClient [as 别名]
# 或者: from windmill.authoring.WindmillTestClient import execJS [as 别名]
def test_scrape_coveritlive():
client = WindmillTestClient(__name__)
#client.open(url = 'http://www.coveritlive.com/index2.php/option=com_altcaster/task=viewaltcast/altcast_code=c3c11df0e3/height=600/width=608')
client.waits.sleep(milliseconds=2000)
#client.click(id="divsrc2")
client.execJS(js='displayAuthModal(true)') # removes the "play" button, activates chat.
#client.waits.sleep(milliseconds=5000) # just wait a couple of seconds for this to load. May want to change to waits.forElement
client.waits.forElement(classname=u"chatmsg", timeout=10000)
#if there are additional entries, they'll be hidden and AJAX will be required. Let's click the buttons
#literally no variations of this click work for me.
#client.click(jquery=u'("td.addlentrytext a")')
#client.click(xpath=u"//td[@class='addlentrytext']/a")
#not totally sure how to wait only until all ajax calls are done, since the ids are random.
#client.waits.sleep(milliseconds=5000)
#gets the current HTML, after JS has loaded.
trigger_additional_entries(client)
# Create soup from the full page and get desired information
response = client.commands.getPageText()
assert response['status']
assert response['result']
soup = BeautifulSoup(response['result'])
#container for messages / dates
message_container = soup.find('div', id = 'mainchattext')
#messages = soup.findAll("div", "chatmsg")
dateline = None
'''
this will find all subdivs, in some cases the chatmsg is within another subdiv. This happens if
there are too many entries in the liveblog and it makes you load the extras via ajax.
'''
messages = []
for message in message_container.findAll('div'):
if message.has_key('id') and message['id'].find('entry') != -1:
for m in message.findAll('div'):
messages.append(m)
else:
messages.append(message)
for message in messages:
if not message.has_key('class'):
print message
continue
#try:
if message['class'].find('dateline') != -1:
#format: Day-Of-Week Month Date, Year
#format: %A %B %d, %Y
dateline = message.text
print dateline
if message['class'].find('chatmsg') != -1:
parse_chat_message(message, dateline)