2015-10-01 20 views
1

因此,我是编程的新手,我一直试图让我的脚本运行,但是当它通过页面时,它会变成一个点下一页将成为首先加载的页面,并且有11个可能的页面,因此它们出现的顺序完全是随机的。尝试让脚本根据在硒中加载的页面的顺序运行

我需要能够告诉哪个页面已经加载并执行那部分脚本,然后一旦完成,重复这个过程,直到所有11个完成。

我使用下面的方法来打破每个窗体出:

testRun.testContentDev(driver); 
    testRun.testLandingPageEntry(driver); 
    testRun.testStandardSMMEntry(driver); 
    testRun.testDisplayAdvertisingEntry(driver); 
    testRun.testReputationManagementEntry(driver); 
    testRun.teststandardSEO(driver); 
    testRun.testCustomSEM(driver); 
    testRun.testEmailMarketing(driver); 
    testRun.testLocalTrack(driver); 
    testRun.testWebsites(driver); 
    testRun.testmobilewebsites(driver); 

我然后有那些使用细分中的每一个:

public void testContentDev(WebDriver driver) 
    public void testLandingPageEntry(WebDriver driver) 
    public void testStandardSMMEntry(WebDriver driver) 
    public void testDisplayAdvertisingEntry(WebDriver driver) 
    public void testReputationManagementEntry(WebDriver driver) 
    public void teststandardSEO(WebDriver driver) 
    public void testCustomSEM(WebDriver driver) 
    public void testEmailMarketing(WebDriver driver) 
    public void testLocalTrack(WebDriver driver) 
    public void testWebsites(WebDriver driver) 
    public void testmobilewebsites(WebDriver driver) 

之一开发者插入的隐藏的输入字段将页面信息拉入JSON格式,其中有一个任务名称是每个人特定的。在这个隐藏的输入中可以找到我唯一知道的每一页不同的东西。 taskName是最大的区别,并且特别引用每个页面。这是HTML代码:

<input type="hidden" value=" 
{ 
"formType":"taskExecutuion", 
"orderId":"XXXXXX", 
"userId":"XXXX", 
"assignee‌​Id":"XXXX", 
"taskId":"4649367", 
"taskName":"Landing Page Form Entry", 
"taskDisplayName":"Landing Page Form for: blank Order ID: XXXXXX", 
"rootProcessName":"Atlas - Create New Order", 
"rootProcessVersion":"3.0.2", 
"rootProcessId":"XXXXXXXXXXXXXXXXXXX", 
"taskP‌rocessName":"LE_Landing_Page_Entry", 
"taskProcessVersion":"0.10", 
"taskProcessId":"‌​XXXXXXXXXXXXXXXXXXX" 
}" 
name="atlas-testing-symbols" id="atlas-testing-symbols-id"> 

最大的问题是,我如何获得JSON并用它来检查,看TASKNAME的JSON相匹配的页面,以便它可以运行我测试的特定部分脚本?

+0

所以,每个网页都使用类似的代码,但每个人都有需要来填充特定字段。我建立自动化测试这一切。还有几个testRun项目先于其他项目出现,但它们每次都以相同的顺序出现。这些其他的显示基于哪一个加载最快。 –

+0

是否有某些原因,您不能仅仅解析JSON隐藏字段,确定您在哪个页面上,然后触发相应页面的测试? – JeffC

+0

@JeffC:那正是我试图弄清楚如何去做的。我试图找出如何使用解析的JSON来触发正确的页面 –

回答

1

一个很好的选择,以

能够分辨哪个页面加载,并去执行脚本的一部分

LoadableComponent。利用其

@Override 
protected void load(WebDriver driver) { 
    LandingPageEntry.load(); 
    testLandingPageEntry(driver) 
    ... 
    StandardSMMEntry.load(); 
    testStandardSMMEntry(driver); 
    ... 

}

+0

所以,我只是改变第一部分看起来更像负载? –

+0

您应该为每个页面创建相应的'load()'方法,包括测试代码按其流程顺序。 – ekostadinov

+0

所以,最大的问题是,我怎样才能知道哪个页面实际打开?其中一位开发人员插入了一个隐藏的输入字段,该字段将页面信息拖入JSON格式,其中存在每个特定的任务名称。 –

相关问题