当前位置: 首页>>代码示例>>Python>>正文


Python Browser.is_element_not_present_by_css方法代码示例

本文整理汇总了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()
开发者ID:C0reFast,项目名称:intelliQ,代码行数:41,代码来源:parser.py

示例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()
开发者ID:teloon,项目名称:sms-backup,代码行数:46,代码来源:main.py

示例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)
#.........这里部分代码省略.........
开发者ID:azag0,项目名称:sa-booker,代码行数:103,代码来源:SA.py

示例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
开发者ID:events-everywhere,项目名称:google-plus,代码行数:100,代码来源:gplus_event.py

示例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
开发者ID:745245208,项目名称:SleepyJJPython,代码行数:33,代码来源:crawler.py

示例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()

	
	
开发者ID:morningmoni,项目名称:Sample-Collection-of-Morning,代码行数:29,代码来源:scorelist.py

示例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")
开发者ID:FoxyProxyCN,项目名称:splinter_examples,代码行数:96,代码来源:ya_register.py


注:本文中的splinter.Browser.is_element_not_present_by_css方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。