方法 | 详情 |
---|---|
alert_is_present | 判断弹框出现 |
涉及lambda、select_by_visible_text、getElementsByClassName、accept,alert于尾段
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
#WebDriverWait()显性等待,调用该方法提供的驱动程序作为参数
mouse = WebDriverWait(driver, 10).until(lambda x:x.find_element("link text","设置"))
ActionChains(driver).move_to_element(mouse).perform()
#点击搜索设置
WebDriverWait(driver,10).until(lambda x:x.find_element("link text","搜索设置")).click()
#定义每页显示下拉框为s
s=WebDriverWait(driver,10).until(lambda x:x.find_element("id","nr"))
#选择50条
Select(s).select_by_visible_text("每页显示50条")
#点击保存设置,根据class属性获取name值对象
js = "document.getElementsByClassName('prefpanelgo')[0].click();"
#直接调用js操作
driver.execute_script(js)
result = EC.alert_is_present()(driver)
if result:
print(result.text)
#点击确定 取消:dismiss()
result.accept()
else:
print("alert未弹出")