SharePoint自动化系列——Select-option标签的定位方法总结

简介: 转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ C#中通过Selenium定位页面上的select-option结构,尝试了以下几种方法,均没有生效: //iw.

转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/

C#中通过Selenium定位页面上的select-option结构,尝试了以下几种方法,均没有生效:

//iw.FindElement(By.CssSelector("select#id > option[value='']")).Click();
//iw.FindElement(By.XPath("//select[@id='']/option[@value='']")).Click(); //iw.FindElements(By.TagName("option"))[index].Click();

最后通过以下这种方式,成功定位到了页面上的Select-option标签:

var selector = iw.FindElement(By.Id(""));
SelectElement select = new SelectElement(selector); select.SelectByText("text");

Select对象可以通过option的value,text等属性对元素进行定位。

实际应用,如在SharePoint中创建site时,对于site template的选取和site path的选择:

public IWebDriver CreateSPSite(IWebDriver iw, string caUrl,string title,string template)
{
    string createSitePage = caUrl + "/_admin/createsite.aspx"; iw.Navigate().GoToUrl(createSitePage); WaitUntilPageLoadedID(iw, "ctl00_PlaceHolderMain_ctl02_RptControls_BtnCreateSite"); //Title. iw.FindElement(By.Id("ctl00_PlaceHolderMain_idTitleDescSection_ctl01_TxtCreateSiteTitle")).SendKeys(title); //Url. var paths = iw.FindElement(By.Id("ctl00_PlaceHolderMain_ctl01_ctl04_DdlWildcardInclusion")); SelectElement path = new SelectElement(paths); path.SelectByText("/sites/"); WaitUntilPageLoadedID(iw, "ctl00_PlaceHolderMain_ctl01_ctl04_TxtSiteName"); iw.FindElement(By.Id("ctl00_PlaceHolderMain_ctl01_ctl04_TxtSiteName")).SendKeys(title); switch (template) { case "ts": break; case "edi": iw.FindElement(By.Id("ctl00_PlaceHolderMain_InputFormTemplatePickerControl_ctl00_ctl01_tabid1")).Click(); Thread.Sleep(1000); WaitUntilPageLoadedID(iw, "ctl00_PlaceHolderMain_InputFormTemplatePickerControl_ctl00_ctl01_LbWebTemplate"); var selector = iw.FindElement(By.Id("ctl00_PlaceHolderMain_InputFormTemplatePickerControl_ctl00_ctl01_LbWebTemplate")); SelectElement select = new SelectElement(selector); select.SelectByText("eDiscovery Center"); break; case "rc": iw.FindElement(By.Id("ctl00_PlaceHolderMain_InputFormTemplatePickerControl_ctl00_ctl01_tabid1")).Click(); Thread.Sleep(1000); WaitUntilPageLoadedID(iw, "ctl00_PlaceHolderMain_InputFormTemplatePickerControl_ctl00_ctl01_LbWebTemplate"); selector = iw.FindElement(By.Id("ctl00_PlaceHolderMain_InputFormTemplatePickerControl_ctl00_ctl01_LbWebTemplate")); select = new SelectElement(selector); select.SelectByText("Records Center"); break; case "holdCenter": iw.FindElement(By.Id("ctl00_PlaceHolderMain_InputFormTemplatePickerControl_ctl00_ctl01_tabid1")).Click(); Thread.Sleep(1000); WaitUntilPageLoadedID(iw, "ctl00_PlaceHolderMain_InputFormTemplatePickerControl_ctl00_ctl01_LbWebTemplate"); selector = iw.FindElement(By.Id("ctl00_PlaceHolderMain_InputFormTemplatePickerControl_ctl00_ctl01_LbWebTemplate")); select = new SelectElement(selector); select.SelectByText("In-Place Hold Policy Center"); break; } iw.FindElement(By.Id("ctl00_PlaceHolderMain_idPrimaryAdministratorSection_ctl01_PickerOwner_upLevelDiv")).SendKeys(@"userName"); iw.FindElement(By.Id("ctl00_PlaceHolderMain_ctl02_RptControls_BtnCreateSite")).Click(); return iw; }

对应在页面上的操作,第一段灰色部分的代码对如下标签进行了选择:

第二段灰色部分代码对如下标签进行了选择:

相关文章
|
2月前
|
JavaScript 前端开发 Python
【python自动化】Playwright基础教程(三)定位操作
【python自动化】Playwright基础教程(三)定位操作
55 0
|
17天前
|
测试技术 API Python
Appium控件交互策略:优化自动化测试效率的关键方法
该文介绍了如何使用Selenium与APP进行交互,包括点击、输入和状态判断等操作。例如,通过element.click()点击控件,element.send_keys()输入文本,以及element.is_displayed()检查元素是否可见。还展示了如何获取元素属性,如resource-id、text和class,并提供了Python代码示例来定位并操作APP元素,如滑动条的显示、可点击性检测及点击滑动条中心位置。在编写测试脚本时,应注意元素定位和状态验证以确保测试稳定性。
20 1
|
5月前
|
编解码 Java 测试技术
『App自动化测试之Appium应用篇』| uiautomator + accessibility_id定位方法完全使用攻略
『App自动化测试之Appium应用篇』| uiautomator + accessibility_id定位方法完全使用攻略
131 0
|
5天前
|
存储 测试技术 数据库
深入理解自动化测试中的数据驱动方法
【5月更文挑战第7天】 在快速发展的软件行业中,为了提升测试效率和测试覆盖率,自动化测试已经成为一个不可或缺的部分。数据驱动测试(DDT)是一种独特的自动化测试方法,它允许分离测试逻辑和测试数据,从而使得测试案例可以更加灵活和有效地进行管理。本文将探讨数据驱动测试的核心概念、实施步骤及其在实际应用中的优势与挑战。通过对多个案例的分析,我们旨在提供一个全面的指南,帮助软件测试人员理解和运用数据驱动方法以优化他们的自动化测试策略。
|
18天前
|
人工智能 Python
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
49 0
|
19天前
|
XML 测试技术 数据库
深入理解自动化测试中的数据驱动方法
【4月更文挑战第23天】 在软件测试领域,为了提高测试效率和质量,自动化测试已成为不可或缺的实践。数据驱动测试(DDT)作为一种高效的自动化测试策略,它通过将测试逻辑与测试数据分离,允许测试人员以更灵活、可维护的方式设计用例。本文将探讨数据驱动方法的基本原理,实现方式以及在实际项目中的应用案例,旨在帮助读者深入理解并有效运用数据驱动方法来提升自动化测试的效率和质量。
|
5月前
|
移动开发 安全 测试技术
『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?
『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?
92 0
|
2月前
|
测试技术 Android开发 索引
XPath定位如何在App自动化测试中大显神威
本文介绍了如何在Appium中使用XPath进行自动化App测试。通过淘宝App实例,展示了XPath在定位元素上的应用,包括基础定位(如通过text、resource-id、class和content-desc属性),contains模糊定位,组合定位以及层级定位(如父、子、兄弟和祖元素定位)。XPath的灵活性和强大功能使得在Appium中高效地定位元素成为可能,从而提升移动应用的测试效率。
17 0
|
6月前
|
机器学习/深度学习 人工智能 数据可视化
【网安AIGC专题10.19】论文4:大模型(CODEX 、CodeGen 、INCODER )+自动生成代码评估:改进自动化测试方法、创建测试输入生成器、探索新的评估数据集扩充方法
【网安AIGC专题10.19】论文4:大模型(CODEX 、CodeGen 、INCODER )+自动生成代码评估:改进自动化测试方法、创建测试输入生成器、探索新的评估数据集扩充方法
303 1
|
4月前
|
小程序 Android开发
Appium微信小程序自动化之开启webview调试功能方法封装
Appium微信小程序自动化之开启webview调试功能方法封装
94 0

热门文章

最新文章