from selenium import webdriver
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
#修改编码使得网页能展示
#如果该文件的命名是selenium.py时系统会报错、
#需要改
# browser = webdriver.Chrome()
browser = webdriver.Firefox()
browser.get('https://www.taobao.com')
input_id = browser.find_element_by_id('q')
input_name = browser.find_element_by_name('q')
input_css = browser.find_element_by_css_selector('#q')
input_xpath = browser.find_element_by_xpath('//*[@id="q"]')
print(input_id)
print(input_name)
print(input_css)
print(input_xpath)
获取到页面后查看搜索框的源代码
四个不同的方法的返回值;
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="8c70f179-a36d-4dcb-9ebb-1ff69bfed680", element="62affff0-e839-4ce1-944c-e9bcec1b1806")>
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="8c70f179-a36d-4dcb-9ebb-1ff69bfed680", element="62affff0-e839-4ce1-944c-e9bcec1b1806")>
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="8c70f179-a36d-4dcb-9ebb-1ff69bfed680", element="62affff0-e839-4ce1-944c-e9bcec1b1806")>
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="8c70f179-a36d-4dcb-9ebb-1ff69bfed680", element="62affff0-e839-4ce1-944c-e9bcec1b1806")>
Process finished with exit code 0
四种方式是一样的
法二:
from selenium import webdriver
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
from selenium.webdriver.common.by import By
browser = webdriver.Firefox()
browser.get('https://www.taobao.com')
input_id = browser.find_element(By.ID,'q')
print(input_id)
browser.close()
通用方法find_element()
,需要两个参数:查找方式By和值
实际就是上面方法的函数版本,只是更加灵活
即:browser.find_element_by_id('q')
<=>browser.find_element(By.ID,'q')
多节点获取
from selenium.webdriver.common.by import By
browser = webdriver.Firefox()
browser.get('https://www.taobao.com')
# list = browser.find_elements_by_css_selector('.service-bd li ')
list = browser.find_elements(By.CSS_SELECTOR,'.service-bd li ')
print(list)
browser.close()
多节点和单节点的区别就是find_element
和find_elements
节点交互
browser = webdriver.Firefox()
browser.get('https://www.taobao.com')
input = browser.find_element_by_id('q')
input.send_keys('iphone')
time.sleep(1)
input.clear()
input.send_keys('ipad')
botton = browser.find_element_by_class_name('btn-search')
botton.click()
首先,驱动浏览器打开淘宝,
然后,用find_element_by_id()
方法获取输入框
然后,用send_keys()
方法输入iPhone
等待一秒后clear()
方法清空输入框
再次调用send_keys()
方法输入iPad
之后,再用find_element_by_class_name()
获取搜索按钮,
最后,调用click()
方法完成搜索