通过XPATH
另参考:xpath定位中详解id 、starts-with、contains、text()和last() 的用法
xpath详细信息参考W3School内容
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By
from time import sleep
webdr = webdriver.Firefox()
webdr.get('https://jobs.zhaopin.com/CC152567616J00234490202.htm')
so = WebDriverWait(webdr, 10).until(expected_conditions.element_to_be_clickable(
(By.XPATH , '//div[@class="risk-warning__content"]/button'))) # 相对路径定位
so.click()
sleep(5)
applyFor_button = webdr.find_element_by_xpath('//div[@class="a-job-apply-button summary-plane__action"]/button') #相对路径定位
applyFor_button.click()
print(applyFor_button)
CSS 定位
CSS常用定位方法
1.find_element_by_css_selector()
2.#id id选择器根据id属性来定位元素
3. .class class选择器,根据class属性值来定位元素
4. [attribute=‘value’]根据属性来定位元素
5. element>element 根据属性来定位 父元素>子元素
from selenium import webdriver
from time import sleep
wedr = webdriver.Firefox()
wedr.get("http://www.baidu.com")
# 根据id来定位
wedr.find_element_by_css_selector("#kw").send_keys("python")
# 根据class定位
wedr.find_element_by_css_selector(".s_ipt").send_keys("Appium")
# 通过属性定位
wedr.find_element_by_css_selector("[autocomplete='off']").send_keys('Capability')
sleep(2)
wedr.find_element_by_id('su').click()
wedr.get("http://www.51zxw.net")
# 通过元素层级定位
wedr.find_element_by_css_selectors("div.nav>div>a.zy")[7].click()
sleep(2)
wedr.quit()