本文整理汇总了Python中splinter.Browser.is_element_not_present_by_css方法的典型用法代码示例。如果您正苦于以下问题:Python Browser.is_element_not_present_by_css方法的具体用法?Python Browser.is_element_not_present_by_css怎么用?Python Browser.is_element_not_present_by_css使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类splinter.Browser
的用法示例。
在下文中一共展示了Browser.is_element_not_present_by_css方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: patent_parser
# 需要导入模块: from splinter import Browser [as 别名]
# 或者: from splinter.Browser import is_element_not_present_by_css [as 别名]
def patent_parser(search_exp):
"""@todo: Docstring for patent_parser.
"""
patent_list = []
b = Browser("phantomjs")
b.reload()
b.visit('http://www.pss-system.gov.cn/sipopublicsearch/search/searchHome-searchIndex.shtml')
b.fill('searchInfo', search_exp)
b.click_link_by_text(u'检索')
b.is_element_not_present_by_css('.s_c_conter', wait_time=8)
for _ in xrange(10):
item_list = b.find_by_css('.s_c_conter')
for item in item_list:
info_list = item.find_by_tag('td')
if not urlset.has_url('patent', info_list[0].text[6:]):
try:
patent = Patent(id=info_list[0].text[6:],
path='~',
title=info_list[4].text[6:],
abstract='~',
inventor=info_list[7].text[5:].split(';')[:-1],
applicant=info_list[6].text[10:].split(';')[:-1],
category=info_list[5].text[8:].split('; '),
update_time=time.strftime('%Y-%m-%dT%XZ', time.gmtime()))
patent_list.append(patent)
print patent.id, 'new' # @todo logs
except:
print 'error patent'
if b.is_text_present(u'下一页'):
b.click_link_by_text(u'下一页')
b.is_element_not_present_by_css('.s_c_conter', wait_time=8)
else:
break
try:
solr.add('patent', patent_list)
except:
'err adding patent'
finally:
b.quit()
示例2: crawl
# 需要导入模块: from splinter import Browser [as 别名]
# 或者: from splinter.Browser import is_element_not_present_by_css [as 别名]
def crawl(usr, pswd, out_path, driver="firefox"):
bsr = Browser(driver)
bsr.visit(URL_LOGIN)
bsr.find_by_id("phone1").fill(usr)
bsr.find_by_id("pswd").fill(pswd)
bsr.find_by_id("login").click()
if bsr.is_element_present_by_css("span.fw1.fs0.acnt"):
print "Successfully login!"
else:
print "Login failed, bye!"
bsr.visit("http://123.163.com/webmail/main/#mid=7")
while bsr.is_element_not_present_by_css("div.list-time"):
print "sleeping"
time.sleep(1)
bsr.find_by_css("span.iblock.icn-msg.list-icon.potr")[0].click()
page_num = get_page_num(bsr)
with open(out_path, "w") as out_f:
for pi in xrange(page_num):
print "Page %d/%d" % (pi+1, page_num)
date_lst = bsr.find_by_css("div.list-time")
date_msgs_lst = bsr.find_by_css("div.sms-item")
#HACK for scrolling the sms list down because of AJAX-style of showing sms
date_lst[-1].right_click()
msg_i = 0
for di in xrange(len(date_lst)):
date = date_lst[di].text.strip().split()[0]
msg_num_mat = re.findall(r"\(\s*(\d+).\s*\)", date_lst[di].text)
msg_num = int(msg_num_mat[0])
out_f.write("%s\t%d\n" % (date, msg_num))
for _ in range(msg_num):
name_obj = date_msgs_lst[msg_i].find_by_css("span.js-cnt.name")[0]
phone_obj = date_msgs_lst[msg_i].find_by_css("span.js-cnt.fc2")[0]
time_obj = date_msgs_lst[msg_i].find_by_css("div.fr.w6.js-cnt.bm-hack-w6")[0]
msg_obj = date_msgs_lst[msg_i].find_by_css("div.w4")[0]
type_obj = date_msgs_lst[msg_i].find_by_css("div.fl.w3.thide.fc5")[0]
out_f.write("%s\t%s\t%s\t%s\t%s\n" % (name_obj.html.encode("utf8"), \
phone_obj.html.strip("() ").encode("utf8"), \
time_obj.text.encode("utf8"), \
"0" if type_obj.visible else "1", \
msg_obj.text.encode("utf8")))
msg_i += 1
#next page
next_page_link = bsr.find_by_css("div.fr.pager")[0].find_by_tag("a")[2]
next_page_link.click()
示例3: __init__
# 需要导入模块: from splinter import Browser [as 别名]
# 或者: from splinter.Browser import is_element_not_present_by_css [as 别名]
class Session:
def __init__(self, browser, user):
self.browser = Browser(browser)
self.browser.visit('http://jizdenky.studentagency.cz/')
self.browser.fill_form({'passwordAccountCode': user['login'],
'password': user['password']})
self.browser.execute_script('window.scrollTo(0, 100)')
button = self.browser.find_by_value('Přihlásit').first
button.click()
self.user = user
self.log = logging.getLogger(__name__)
def go_search(self):
self.browser.visit('http://jizdenky.studentagency.cz/')
def search(self, task, date_return=None, is_open=False):
self.browser.find_by_id('hp_form_itinerar').first \
.find_by_xpath('div/input[@type="radio"]'
)[1 if date_return or is_open else 0].check()
for city, i in [(task.from_city, 1), (task.to_city, 2)]:
self.browser.find_by_css('input[tabindex="{}"]'.format(i)) \
.first.fill(city)
for item in self.browser.find_by_css('.ui-menu-item'):
link = item.find_by_tag('a')
if link.value.lower() == city.lower():
link.click()
break
self.browser.fill('departure:dateField', task.date)
if date_return:
self.browser.fill('returnDeparture:dateField', date_return)
if is_open:
self.browser.check('returnTicketOpen')
self.browser.find_option_by_text('ISIC').first.check()
self.browser.find_by_value('Vyhledat').first.click()
while self.browser.is_element_not_present_by_css('.left_column',
wait_time=1):
pass
items = self.browser.find_by_css('.left_column') \
.find_by_xpath('div/div/*')
connections = []
for item in items:
if item.tag_name == 'h2':
date_local = item.text.split(' ')[1]
elif item.tag_name == 'div' and item.has_class('routeSummary'):
assert date_local
if date_local != task.date:
break
connections.append(Connection(item))
return connections
def order_time(self, connection):
while True:
if connection.click():
self.browser
dialog = self.browser.find_by_css('[id^=_wicket_window]')
if dialog:
dialog.first.find_by_tag('button').click()
if self.browser.is_element_present_by_id('sumary_lines',
wait_time=1):
break
self.browser.find_by_id('sumary_lines') \
.first.find_by_tag('button') \
.first.click()
seats = {}
bus = self.browser.find_by_css('.seatsContainer')
if bus:
for seat in bus.first.find_by_css(
'.seatContainer:not([style*=blocked])'):
seats[int(seat.find_by_tag('div').first.html[:-1])] = seat
else:
bus = self.browser.find_by_css('.vehicle')
for seat in bus.first.find_by_css('.free, .selected'):
seats[int(seat.text[:-1])] = seat
return seats
def order_seat(self, seat):
if not seat.has_class('selected'):
seat.click()
for fs in self.browser.find_by_css('fieldset.topRoute'):
legend = fs.find_by_css('legend')
if legend and 'Pojištění' in legend[0].text:
for package in fs.find_by_css('.insurancePackageType'):
if 'nechci' in package.find_by_tag('label').text:
package.find_by_tag('input').click()
time.sleep(1)
submit = self.browser.find_by_css('[name^=buttonContainer]').first
interaction_type = submit.text
reserved = 'Rezervovat' in interaction_type
if not reserved:
submit.click()
time.sleep(1)
data = (self.user['first'],
self.user['last'],
self.user['email'],
self.user['phone'])
for item, value in zip(self.browser.find_by_id('passengerInfo')
.first.find_by_tag('input'),
data):
item.fill(value)
#.........这里部分代码省略.........
示例4: GPlusEventManager
# 需要导入模块: from splinter import Browser [as 别名]
# 或者: from splinter.Browser import is_element_not_present_by_css [as 别名]
class GPlusEventManager(object):
def __init__(self, email, passwd, otp):
self.email = email
self.passwd = passwd
self.br = Browser('firefox')
atexit.register(self.force_br_quit)
# To dynamically load jQuery into the HTML head
self.loadjq = """var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src =
'//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js';
head.appendChild(script);"""
self.otp = otp
self.logged_in = self.login()
def force_br_quit(self):
try:
self.br.quit()
except:
pass
def create(self, title, desc, date, time):
""" Create a new Google Plus event """
if not self.logged_in:
self.logged_in = self.login()
create_btn = 'div[guidedhelpid="events_create_event_button"]'
self.br.find_by_css(create_btn)[0].click()
return self.complete_form(title, desc, date, time, update=False)
def update(self, id, title=None, desc=None, date=None, time=None):
""" Update a Google Plus event """
if not self.logged_in:
self.logged_in = self.login()
self.br.visit(id)
dropdown = 'div[class="A7kfHd q3sPdd"]'
while self.br.is_element_not_present_by_css(dropdown):
pass
self.br.find_by_css(dropdown).click()
self.br.find_by_xpath('//*[@id=":o"]/div').click()
return self.complete_form(title, desc, date, time, update=True)
def complete_form(self, title, desc, date, time, update):
'''Fill event create/edit form,
the CSS selectors are valid in both types of form'''
title_input = 'input[placeholder="Event title"]'
while self.br.is_element_not_present_by_css(title_input):
pass
if title:
title_placeholder = self.br.find_by_css(title_input)
title_placeholder.fill(title)
if date:
self.br.find_by_css('input[class="g-A-G T4 lUa"]').click()
rm_date = '''document.body.getElementsByClassName("g-A-G T4 lUa")
[0].value = ""'''
self.br.execute_script(rm_date)
date_field = 'input[class="g-A-G T4 lUa"]'
self.br.find_by_css(date_field).type('{}\t'.format(date))
if time:
self.br.execute_script(self.loadjq)
loaded = False
rm_time = '$(".EKa")[0].value = ""'
while not loaded:
try:
self.br.execute_script(rm_time)
except Exception, e:
pass
else:
loaded = True
time_field = 'input[class="g-A-G T4 EKa"]'
self.br.find_by_css(time_field)[0].type('{}'.format(time))
if desc:
set_desc = '''document.body.getElementsByClassName("yd editable")
[1].innerHTML = "{}"'''.format(desc)
self.br.execute_script(set_desc)
invite_btn = self.br.find_by_css('div[guidedhelpid="sharebutton"]')
invite_inp = self.br.find_by_css('input[class="i-j-h-G-G"]')
invite_btn.click()
if not update: # If new entry, invite Public group by default
invite_inp.click()
invite_inp.type('Public\n')
invite_btn.click()
while not self.br.is_text_present('Going ('):
pass # wait on page load for new event
url = self.br.url
self.br.quit()
return url # return event url
示例5: myClick_txt
# 需要导入模块: from splinter import Browser [as 别名]
# 或者: from splinter.Browser import is_element_not_present_by_css [as 别名]
myClick_txt(u'帐号登录')
# data里填真实的username和password
data ={'username':'******','password':'******'}
browser.fill_form(data)
browser.find_by_css('.W_btn_a').first.click()
import time
browser.visit('http://weibo.com/message/history?uid=5175429989#_0')
question = browser.find_by_css('.bubble_r .page').last.text
lastAnswer = ''
answer = ''
j = 0
while True:
try:
if j % 100 == 0:
browser.reload()
while browser.is_element_not_present_by_css('.bubble_l .page'):
browser.reload()
j += 1
i = 0
while answer == lastAnswer and i < 1000:
answer = browser.find_by_css('.bubble_l .page').last.text
i += 1
print '小冰:',answer
try:
cursor.execute(sql%(lastAnswer,question,answer))
db.commit()
except:
db.rollback()
question = sim_chat(answer)
print '小黄鸡:',question
lastAnswer = answer
示例6: sleep
# 需要导入模块: from splinter import Browser [as 别名]
# 或者: from splinter.Browser import is_element_not_present_by_css [as 别名]
if (re.match(pattern,ele.text)):
classlist.append(ele.text)
#打开微信
wechaturl='http://wechat.shwilling.com/auth/qrcode/login?redirect=http%3A%2F%2Fwechat.shwilling.com%2Fsjtu%2Fcourse'
browser.visit(wechaturl)
print u'你现在有20s的时间扫描二维码确认登陆'
sleep(10)
print u'请稍等,本程序稍微有点慢...但是等待还是值得的.'
myfile=open(u'scorelist.txt','w')
for classid in classlist:
time=['/2014-2015-1','/2014-2015-2','/2015-2016-1']
for i in range(3):
class_str='http://wechat.shwilling.com/sjtu/course/detail/'+classid+time[i]
browser.visit(class_str)
if (browser.is_element_not_present_by_css('.d-name')):
pass
else:
name=browser.find_by_css('.d-name').text
timea=browser.find_by_css('.c-code').text
meanscore=browser.find_by_css('.c-aver').text
highscore=browser.find_by_css('.c-max').text
print name,time[i],meanscore,highscore
myfile.write(name.encode('utf-8')),myfile.write('\t'),myfile.write(time[i].encode('utf-8')),myfile.write('\t'),myfile.write(meanscore.encode('utf-8')),myfile.write('\t'), myfile.write(highscore.encode('utf-8')),myfile.write('\n')
browser.quit()
myfile.close()
示例7: main
# 需要导入模块: from splinter import Browser [as 别名]
# 或者: from splinter.Browser import is_element_not_present_by_css [as 别名]
def main():
#how many accounts we need
ntimes = 1
for i in range(1,ntimes+1):
print "starting browser"
firstname = names.get_first_name()
#print "firstname", firstname
lastname = names.get_last_name()
#print "lastname", lastname
browser = Browser() #Browser(user_agent="Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en)")
browser.visit('https://passport.yandex.com/registration/mail')
browser.find_by_id('firstname').fill(firstname)
browser.find_by_id('lastname').fill(lastname)
testlogin = False
count = 0
while (testlogin == False):
count = count + 1
login = firstname+lastname+str(randint(10,1000))
print "login:", login
browser.find_by_id('login').fill(login)
browser.is_element_not_present_by_css("div.control__error__login_notavailable", wait_time=2)
if browser.is_text_present("username available"):
testlogin = True
else:
print "login is not available, generate new"
if (count>3):
#print "logins in this script is unavailable now, please make new login generator"
browser.quit()
sys.exit("logins in this script is unavailable now, please make new login generator")
password = password_generator.generate()
print "password:", password
browser.find_by_id('password').fill(password)
browser.find_by_id('password_confirm').fill(password)
#click on select
browser.find_by_name("hint_question_id").click()
#wait
browser.is_element_not_present_by_css("li[role=\"presentation\"]", wait_time=3)
#check first question
browser.find_by_css("li[role=\"presentation\"]")[1].click()
browser.find_by_id("hint_answer").fill(firstname)
gateimgcode = captcha(browser)
browser.find_by_id('answer').fill(gateimgcode)
browser.find_by_css("button[type=\"submit\"]").click()
testcaptcha = False
count = 0
while (testcaptcha == False):
count = count + 1
browser.is_element_not_present_by_css("div.control__error__captcha_incorrect", wait_time=2)
if browser.is_text_present("characters were entered incorrectly"):
print "captcha code is bad, try again"
browser.find_by_id('password').fill(password)
browser.find_by_id('password_confirm').fill(password)
gateimgcode = captcha(browser)
browser.find_by_id('answer').fill(gateimgcode)
browser.find_by_css("button[type=\"submit\"]").click()
else:
testcaptcha = True
if (count>3):
#print "something wrong with captcha"
browser.quit()
sys.exit("something wrong with captcha")
browser.is_element_not_present_by_tag("html", wait_time=2)
if browser.is_text_present("Personal information"):
today = datetime.date.today()
filename = 'yandex'+str(today)+'.txt'
file = open(filename,'a')
file.write(login+'@yandex.com'+':'+login+':'+password+'\n')
file.close()
print str(i)+" accounts saved to "+filename
browser.quit()
else:
#print "something wrong, please start script again"
browser.quit()
sys.exit("something wrong, please start script again")