======================================
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://selenium.dev")
#driver.quit()
from selenium import webdriver
option = webdriver.ChromeOptions()
option.add_experimental_option("detach", True)
driver = webdriver.Chrome(chrome_options=option)
driver.get('https://www.baidu.com')
driver.maximize_window()
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox(executable_path='C:\Program Files\Mozilla Firefox\geckodriver.exe')
driver.get("https://www.baidu.com")
driver.find_element_by_id("kw").send_keys("selenium3")
driver.find_element_by_id("su").click()
sleep(3)
driver.quit()
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import *
#打开浏览器/客户端
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://10.10.40.49/")
sleep(3)
#登录
driver.find_element_by_id("real_username").send_keys("admin")
sleep(2)
driver.find_element_by_id("fake_pass").click()
driver.find_element_by_id("real_pass").send_keys("admin888")
sleep(2)
driver.find_element_by_id("submit").click()
#入网域
sleep(2)
driver.find_element_by_id("menu_lv_1_sub_5").click()
sleep(2)
driver.find_element_by_xpath("//a[@class='device-btn-save']").click()
sleep(1)
driver.find_element_by_id("dmu_domain_nameEdit").send_keys("domain")
sleep(1)
lists = driver.find_elements_by_xpath("//div[@class='l-dialog-btn-inner']")
lists[1].click()
#入网接入模块
sleep(2)
driver.find_element_by_id("menu_lv_1_sub_3").click()
sleep(2)
driver.find_element_by_id("createDauBtn").click()
sleep(1)
driver.find_element_by_id("dauNameEdit").send_keys("dau")
sleep(1)
driver.find_element_by_id("dauIpEdit").send_keys("10.10.40.49")
sleep(1)
driver.find_element_by_id("dmu_dau_smnp_cap").click()
sleep(1)
lists = driver.find_elements_by_xpath("//div[@class='l-dialog-btn-inner']")
lists[1].click()
# coding=UTF-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import time
import traceback
class Praise():
def __init__(self,QQ,password,friendQQ):
self.QQ=QQ
self.password=password
self.friendQQ=friendQQ
if self.friendQQ:
self.url="https://user.qzone.qq.com/"+self.friendQQ+"/main"
else:
self.url="https://user.qzone.qq.com/"+self.QQ
def login_qzone(self):
# self.browser = webdriver.Chrome()
#self.browser=webdriver.Edge()
self.browser=webdriver.Firefox()
self.browser.get(self.url)
self.browser.switch_to.frame("login_frame")
self.browser.find_element_by_id("switcher_plogin").click()
self.browser.find_element_by_id("u").clear()
self.browser.find_element_by_id("u").send_keys(self.QQ)
self.browser.find_element_by_id("p").clear()
self.browser.find_element_by_id("p").send_keys(self.password)
self.browser.find_element_by_id("login_button").click()
time.sleep(10)
print "登录成功"
#解决FireFox的can't access dead object的方法链接:
#http://stackoverflow.com/questions/16396767/firefox-bug-with-selenium-cant-access-dead-object
#通过下面这句解决,可能时因为上面switch_to到了login_frame,所以现在它是dead object
self.browser.switch_to.default_content()
def praise_someone(self):
self.log_num=0
pre_num=0
log_set=set()
# while 1:
for i in range(1000):
self.browser.execute_script("window.scrollBy(0,500);")
self.browser.switch_to.frame("QM_Feeds_Iframe") # 个人主页才有
self.log_head = self.browser.find_element_by_id("host_home_feeds")
time.sleep(60)
self.log_list=self.log_head.find_elements_by_css_selector(".f-single.f-s-s")
for log in self.log_list:
log_set.add(log)
# if pre_num==len(log_set):
# break
pre_num+=len(log_set)
print "已从"+str(self.friendQQ)+"的空间中找到"+str(pre_num)+"条说说"
self.start_praising()
def praise_all(self):
feed_friend_list = self.browser.find_element_by_id("feed_friend_list")
self.log_list = feed_friend_list.find_elements_by_css_selector(".f-single.f-s-s")
# 向下翻动一段距离,为了使feed_page_container那个变化的列表出现
for i in range(100):
self.browser.execute_script("window.scrollBy(0,500);")
time.sleep(60)
self.start_praising()
self.log_num = len(self.log_list)
self.log_list=[]
container_head = feed_friend_list.find_element_by_class_name("feed_page_container")
# 个人中心页面,说说是在<li class="feed_page_container">...</li>下动态出现的
# 该标签下最多有3个<ul data-page="0">...</ul>,每个ul标签下又包含4个说说
i=0
while 1:
if i % 12 == 0:
time.sleep(2)
self.log_list= container_head.find_elements_by_css_selector(".f-single.f-s-s")
self.start_praising()
self.browser.execute_script("window.scrollBy(0,500)")
i+=1
def run(self):
print '当前位置:', self.url
print 'Current URL:', self.browser.current_url
# 向下翻页
# 有的空间“查看更多...”必须要点一下?...
try:
btn_more = self.browser.find_element_by_css_selector(".b-inline.data_btn_more")
if btn_more:
btn_more.click()
except:
pass
if self.friendQQ:
self.praise_someone()
else:
self.praise_all()
def start_praising(self):
self.praised_list=[]
n=0
for log in self.log_list:
if log in self.praised_list:
continue
try:
n+=1
print n,":",log.find_element_by_xpath("./div[2]/div/div").text,
thumb_up_block=log.find_element_by_xpath("./div[3]/div[1]/p/a[3]")
if "item-on" not in thumb_up_block.get_attribute("class"):
thumb_up_icon=thumb_up_block.find_element_by_xpath("./i")
thumb_up_icon.click()
print "[点赞成功]\n"
else:
print "[已赞]\n"
self.praised_list.append(log)
time.sleep(1)
except:
traceback.print_exc()
continue
def main():
QQ =raw_input(u"输入QQ号:")
password =raw_input(u"输入QQ密码:")
friendQQ =raw_input(u"输入被点赞的好友QQ号(不输入则给空间所有发出来的动态点赞):")
praise_spider = Praise(QQ,password,friendQQ)
praise_spider.login_qzone()
praise_spider.run()
print "总共处理" + str(praise_spider.log_num) + "条动态"
# praise_spider.start_praising()
if __name__ == "__main__":
main()
标签:some,code,log,selenium,self,driver,element,id,find From: https://www.cnblogs.com/luobomao/p/17445616.html