selenium元素定位
https://www.cnblogs.com/qingchunjun/p/4208159.html
判定元素是否存在
private boolean isElementPresent(By by){ try{ driver.findElement(by); return true; }catch(Exception e){ return false; } }
滑动页面
# 执行JavaScript脚本
browser.execute_script('window.scrollTo(0,document.body.scrollHeight)') browser.execute_script('alert("To Bottom")')
查找元素
# find_element_by_name 通过name查找单个元素 # find_element_by_xpath 通过xpath查找单个元素 # find_element_by_link_text 通过链接查找单个元素 # find_element_by_partial_link_text 通过部分链接查找单个元素 # find_element_by_tag_name 通过标签名称查找单个元素 # find_element_by_class_name 通过类名查找单个元素 # find_element_by_css_selector 通过css选择武器查找单个元素 # find_elements_by_name 通过name查找多个元素 # find_elements_by_xpath 通过xpath查找多个元素 # find_elements_by_link_text 通过链接查找多个元素 # find_elements_by_partial_link_text 通过部分链接查找多个元素 # find_elements_by_tag_name 通过标签名称查找多个元素 # find_elements_by_class_name 通过类名查找多个元素 # find_elements_by_css_selector 通过css选择武器查找多个元素
获取元素信息
btn_more = browser.find_element_by_id('btn_more') print(btn_more.get_attribute('class')) # 获取属性 print(btn_more.get_attribute('href')) # 获取属性 print(btn_more.text) # 获取文本值
在给定的时间内去查找元素
/** * 在给定的时间内去查找元素,如果没找到则超时,抛出异常 * */ public static void waitForElementToLoad(WebDriver driver, int timeOut, final By By) { try { (new WebDriverWait(driver, timeOut)).until(new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver driver) { WebElement element = driver.findElement(By); return element.isDisplayed(); } }); } catch (TimeoutException e) { Assert.fail("超时!! " + timeOut + " 秒之后还没找到元素 [" + By + "]"); } }