一个可行的Selenium测试框架2014-06-09 博客园 DiggingDeeply老早就想写一些Selenium测试框架的搭建,但是时间和想法都不太成熟。今天 就大概粗略的和大家分享一下。本文的背景假设读者有一定的selenium使用经验。1.元素定位大家都知道,网页这个东西在浏览器里展现出来的是一个完整的xml,所以可 以通过xml的访问方式,字符串查询,正则等来访问xml。selenium支持的遍历模式有:
public class By{protected By();protected By(Func<ISearchContext, IWebElement> findElementMethod, Func<ISearchContext, ReadOnlyCollection<IWebElement>> findElementsMethod);public static bool operator !=(By one, By two);public static bool operator ==(By one, By two);protected string Description { get; set; }protected Func<ISearchContext, IWebElement> FindElementMethod { get; set; }protected Func<ISearchContext, ReadOnlyCollection<IWebElement>> FindElementsMethod { get; set; }public static By ClassName(string classNameToFind);public static By CssSelector(string cssSelectorToFind);public override bool Equals(object obj);public virtual IWebElement FindElement(ISearchContext context);public virtual ReadOnlyCollection<IWebElement> FindElements(ISearchContext context);public override int GetHashCode();public static By Id(string idToFind);public static By LinkText(string linkTextToFind);public static By Name(string nameToFind);public static By PartialLinkText(string partialLinkTextToFind);public static By TagName(string tagNameToFind);public override string ToString();public static By XPath(string xpathToFind);}
大家可以看到最后一个是通过xpath,其他的例如classname,cssselector等 估计也是通过xpath来实现的。大家可以去具体看看webdrvier实现的源码,验证 一下思想,如果后续有时间,我会剖析一下webdriver的源代码。好了,有了xpath,就可以定位网页上的元素了。