一、Python點擊網頁按鈕實例
Python作為一種高級編程語言,可以通過Selenium等工具實現對網頁上按鈕的點擊操作。下面提供一個簡單的實例,演示如何用Python實現在百度搜索框中輸入「Python」並點擊搜索按鈕。
from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.baidu.com/") search_box = driver.find_element_by_id("kw") search_box.send_keys("Python") search_btn = driver.find_element_by_id("su") search_btn.click()
首先導入Selenium庫,創建ChromeDriver對象並打開百度搜索頁面。然後通過id找到搜索框和搜索按鈕,分別用send_keys()方法輸入關鍵字和click()方法點擊按鈕。
二、Python點擊按鈕事件
Python中實現按鈕事件的方法有多種,可以通過Selenium、PyAutoGUI等庫進行操作。下面以Selenium為例,演示如何在淘寶頁面上點擊「登錄」按鈕。
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Chrome() driver.get("https://www.taobao.com/") login_btn = driver.find_element_by_xpath("//div[@class='site-nav-sign']/a[@class='h']") actions = ActionChains(driver) actions.move_to_element(login_btn).click().perform()
首先打開淘寶首頁,然後通過xpath定位「登錄」按鈕。將webdriver對象傳遞給ActionChains類,調用它的move_to_element()方法移動到登錄按鈕上,再調用click()方法模擬點擊事件。最後通過perform()方法執行整個操作。
三、Python點擊網頁按鈕對新網頁
有時候點擊按鈕會彈出新的網頁,我們需要在新的網頁上繼續操作。下面以Selenium為例,演示如何在百度首頁上點擊「更多」按鈕並在新的網頁上搜索「Python」。
from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.baidu.com/") more_btn = driver.find_element_by_xpath("//span[@class='s-more']/a") more_btn.click() driver.switch_to.window(driver.window_handles[-1]) # 切換到新打開的窗口 search_box = driver.find_element_by_id("sb_form_q") search_box.send_keys("Python") search_btn = driver.find_element_by_id("sb_form_go") search_btn.click()
首先打開百度首頁,然後通過xpath定位「更多」按鈕。點擊按鈕後會彈出新的窗口,通過switch_to.window()方法切換到新窗口。在新窗口中通過id定位搜索框和搜索按鈕,分別進行輸入和點擊操作。
四、Python點擊網頁按鈕點擊彈出
有些按鈕會在點擊後彈出一個浮窗,則我們需要先定位到該浮窗,再在該浮窗中進行點擊操作。下面以Selenium為例,演示如何在京東頁面上點擊「消息」按鈕並在彈出的浮窗中查看消息列表。
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() driver.get("https://www.jd.com/") message_btn = driver.find_element_by_xpath("//div[@class='navitems-group']/div[@class='nav-item'][8]") menu_frame = driver.find_element_by_xpath("//iframe[@id='ttbar-login']") driver.switch_to.frame(menu_frame) wait = WebDriverWait(driver, 10) message_link = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "我的消息"))) message_link.click()
首先打開京東首頁,然後通過xpath定位「消息」按鈕。按鈕所在的浮窗在頁面內以框架的形式存在,因此需要先定位到該框架,通過switch_to.frame()方法切換到該框架內部。等待該框架中的「我的消息」鏈接出現後再進行點擊操作。
五、Python點擊網頁按鈕沒有id
有時候按鈕沒有id屬性,而是通過class或其他屬性進行定位。下面以Selenium為例,演示如何在知乎頁面上點擊「登錄」按鈕。
from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.zhihu.com/") login_btn = driver.find_element_by_xpath("//div[@class='ButtonGroup']//button") login_btn.click()
首先打開知乎首頁,然後通過xpath定位登錄按鈕。該按鈕沒有id屬性,但有一個確定的class屬性 「ButtonGroup」,可以通過這個屬性來定位。使用click()方法模擬點擊操作即可。
六、Python點擊百度一下按鈕
下面以Selenium為例,演示如何在百度搜索頁面上點擊「百度一下」按鈕。
from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.baidu.com/") search_box = driver.find_element_by_id("kw") search_box.send_keys("Python") search_btn = driver.find_element_by_id("su") search_btn.click()
該示例與第一例實例代碼相同,這裡不再贅述。
七、Python模擬點擊網頁按鈕
下面以Selenium為例,演示如何在CSDN頁面上模擬點擊「寫博客」按鈕。
from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.csdn.net/") new_blog_btn = driver.find_element_by_xpath("//div[@class='pulllog-box']/a") driver.execute_script("arguments[0].click();", new_blog_btn)
首先打開CSDN首頁,然後通過xpath定位「寫博客」按鈕。在這個例子中,我們用execute_script()方法調用JavaScript來模擬點擊操作,因為CSDN的頁面在點擊按鈕時會進行多個異步請求,用click()方法可能會出現不可預知的問題。
八、Python實現點擊按鈕
下面以Selenium為例,演示如何在豆瓣電影頁面上點擊「即將上映」按鈕。
from selenium import webdriver driver = webdriver.Chrome() driver.get("https://movie.douban.com/") upcoming_btn = driver.find_element_by_xpath("//li[@class='menu']/a[text()='即將上映']") upcoming_btn.click()
首先打開豆瓣電影首頁,然後通過xpath定位「即將上映」按鈕。使用click()方法模擬點擊操作即可。
九、Python自動點擊網頁
下面以Selenium為例,演示如何在百度搜索頁面上自動點擊搜索結果頁數。
from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() driver.get("https://www.baidu.com/s?wd=Python") for i in range(2, 5): page_link = driver.find_element_by_xpath("//div[@id='page']/a[text()='%s']" % i) actions = ActionChains(driver) actions.key_down(Keys.CONTROL).click(page_link).key_up(Keys.CONTROL).perform()
首先打開百度搜索頁面,可以通過設置搜索關鍵詞在鏈接後加上參數wd來指定,例如這裡的關鍵詞為Python。然後循環點擊第2到第4頁的頁碼鏈接,通過`Actions`改為打開新標籤頁的方式,不改變原標籤頁內容。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/153506.html