一.概述
在Tellurium中,所有的页面元素和方法都会写在groovy文件中,一个完整的groovy文件可以是这个样子的,以google首页为例:
public class GoogleHomeModule extends DslContext{
public void defineGoogleHomeModule(){
ui.Container(uid: "root", clocator: [tag: "center"]){
InputBox(uid: "input", clocator: [name: "q"])
SubmitButton(uid: "gSearch", clocator: [name: "btnG"])
SubmitButton(uid: "lucky", clocator: [name: "btnI"])
Image(uid: "logo", clocator: [id: "logo"])
}
}
public void doGoogleSearch(String input){
pause TelluriumConstant.PAUSELOW
type "root.input", input
pause TelluriumConstant.PAUSELOW
click "root.gSearch"
waitForPageToLoad TelluriumConstant.WAIT
}
}
其中ui.Container这部分是我们可以做优化的地方
二.优化
首先,直接用Tellurium IDE产生出我们需要的代码,最初工具产生的代码是这样的:
ui.Container(uid: "Table", clocator: [tag: "table"]){
SubmitButton(uid: "Google", clocator: [tag: "input", type: "submit", class: "lsb", value: "Google 搜索", name: "btnG"])
Container(uid: "Section", clocator: [tag: "tr"]){
Container(uid: "Part", clocator: [tag: "td", direct: "true"]){
InputBox(uid: "Q", clocator: [tag: "input", title: "Google 搜索", class: "lst", name: "q"])
SubmitButton(uid: "Input", clocator: [tag: "input", type: "submit", class: "lsb", value: " 手气不错 ", name: "btnI"])
}
}
}
可以看到以上的Container中,我们所需要的InputBox在最底层,上面有3个父节点.如果要做一个搜索操作的话,写出来的代码会是这样:
type "Table.Selection.Part.Q", "james"
click "Table.Google"
这样的话,一个操作中对页面元素的依赖性很高,不容易维护.由于Tellurium也是(可以)用Xpath去解析一个元素,所以,比较理想的状况是这样去操作元素:
type "Table.Q", "james"
click "Table.Google"
所以,优化过的Container最好是这个样子:
ui.Container(uid: "Table", clocator: [tag: "Table"]){
InputBox(uid: "Q", clocator: [name: "q"])
SubmitButton(uid: "Google", clocator: [name: "btnG"])
SubmitButton(uid: "lucky", clocator: [name: "btnI"])
Image(uid: "logo", clocator: [id: "logo"])
}
在以上代码中,将所有中间的Container,多余的元素属性,通通删除掉.让我们对所需要的元素的寻找,仅仅依赖于该元素的name,以及最上层Container的属性(tag,name).
三.总结
跟Selenium一样,我们的目标是要将页面元素的依赖性降低,最好的结果是仅仅依赖于元素的ID或者Name
分享到:
相关推荐
Tellurium Automated Testing Framework2Tellurium Automated Testing Framework2
Tellurium Automated Testing Framework¶Tellurium Automated Testing Framework¶
Tellurium Automated Testing Framework3Tellurium Automated Testing Framework3
Tellurium提供了界面代码,可以在标准格式之间转换并利用功能强大的库,而无需技术专家,从而使您可以专注于重要的事情:构建更好的模型。 Tellurium还通过提供了一流的可交换性支持,使您可以与其他工具共享模型和...
首先,文章中提到的“准静态沉淀”,是指在没有表面活性剂的情况下,通过控制化学反应的速率,使得反应物以非常缓慢的速度进行沉淀,从而达到制备均一纳米结构的目的。这种方法可以在不使用任何表面活性剂或模板的...
Syntheses and Properties of Tetrakis(pentafluorophenyl)tellurium, Te(C6F5)4, and Related Compounds - Single Crystal Structures of Tris(pentafluorophenyl)tellurium Bromide, Te(C6F5)3Br, Tris...
在Tellurium中,我们可以使用SBML语法来定义这些反应,并利用`te.simulate()`函数进行模拟。此外,Jupyter Notebook的交互性使得我们能实时观察模拟结果,例如绘制浓度随时间变化的曲线,以便于理解动态行为。 在...
测试计划元素自动化测试框架Tellurium使用方法介绍这个框架是从Selenium框架发展而来,但又具有不同的测试理念。大多数Web测试框架,比如Selenium,主要致力于单独的UI元素。而Tellurium恰好相反,它把多个UI元素...
Tellurium(te。)是一个支持Spyder2 IDE和Jupyter Notebook的Python环境,旨在用于大规模系统和合成生物学模拟。 它结合了许多现有的库,包括libSBML,libRoadRunner(包括libStruct),libAntimony,并且可以通过...
Here we demonstrate tellurium oxide as a complementary metal oxide semiconductor silicon photonics platform for nonlinear functionalities, which is already becoming an established platform for ...
A single-mode laser output of 0.75 W near 2μm was obtained with a slope efficiency of 28.7 with respect to the absorbed pump power when a self-developed double-cladding Tm3+-doped tellurium germanate...
资源分类:Python库 所属语言:Python 资源全名:biosimulators_tellurium-0.1.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
GaAs tunnel junction grown using tellurium and magnesium as dopants by solid-state molecular beam epitaxy
碲。稳定元素解决StaleElementReferenceException问题的一组Selenium扩展这个怎么运作文章描述了该库背后的整个概念。如何使用它与其使用Selenium.WebDriver包中的标准方法搜索Web元素,不如使用 nuget包中的对应...
Two-dimensional (2D) Te nanosheets were successfully fabricated through the liquid-phase exfoliation (LPE) method. The nonlinear optical properties of 2D Te nanosheets were studied by the open-...
Syntheses and Properties of Tetrakis(pentafluorophenyl)tellurium, Te(C6F5)4, and Related Compounds - Single Crystal Structures of Tris(pentafluorophenyl)tellurium Bromide, Te(C6F5)3Br, Tris...
在电子政务领域,高效、...综上所述,该PDF文件可能详细介绍了如何通过优化高速驱动字线电路设计来提升相变存储器在电子政务环境中的性能和可靠性,对于理解PCM技术在实际应用中的挑战和解决方案有着重要的参考价值。
中发布的功能 JDK 8 和 JDK 9 JDK 8 和 9 JDK 9 JDK 9 JDK9 的 55 个新特性 JDK 10 JDK 10 JDK 9、10 和 11 JDK 10 JDK 10 JDK 10 JDK 11 JDK 11 Java 堆栈 名称 描述 关联 碲 Tellurium 自动化测试框架是一个用于...
4. **系统生物学模拟**:SBML(Systems Biology Markup Language)是用于交换和存储生物系统模型的标准格式,而Python库如libSBML和tellurium则支持SBML模型的读取、编辑和模拟。这使得跨研究团队共享恩氏菌模型成为...
2. **模拟执行**:提供接口调用各种生物模拟器,执行模型的仿真任务,如 COPASI、Tellurium 或 RoadRunner。 3. **结果验证**:对模拟结果进行校验和分析,确保其符合预期的生物学行为。 4. **数据解析和可视化**...