Web应用程序中的完整字段测试来自Python / Eclipse / DyDev中的映射文档的调用数据 - java

抱歉,如果在其他地方都无法找到答案,我已经用我想出的各种方式来搜索问题。

无论如何,我是自动化测试的新手,并且我将Eclipse,Python(通过PyDev)与Selenium Webdriver结合使用。在此之前,我使用Java编写了一些文本,并使用Java将测试脚本与单独的Mapping Repository文档(已映射所有xpath和ID)一起使用,我在测试脚本中使用了公共类并对其进行了“扩展”到被称为的映射存储库。这有助于我保持测试脚本的整洁,并将所有字段映射到一个位置。

在Python中是否有等同功能? (很抱歉,如果这样做没有意义)。我有运行在我公司网站之一上的Python测试脚本,我使用selemium webdriver打开浏览器,还使用了位于元素中的函数,但希望填写调用映射文档的网站字段,而不是使我的页面混乱测试脚本。

对于我的措辞,我深表歉意,我在所有这些以及在并行学习python的同时编写脚本都是相当陌生的,因此有点“深入”了。

编辑:添加的代码示例:
Java看起来像下面的代码(我砍了两节,希望能证明我的意思)。并且我添加了我的Python代码的开头。因此,我想问的是,下面的“公共类OneRiskMotorBind扩展了MappingRepository {”代码的python等效代码是否更有意义?

Java映射文档:

import org.openqa.selenium.WebElement;

public class MappingRepository {

//*** login screen ***
    static String loginarea ="/html/body/div[1]/div[4]/table/tbody/tr/td/div";
    static String LogOnUsername = "/html/body/div[1]/div[4]/table/tbody/tr/td/div/table/tbody/tr[2]/td/div/table/tbody/tr[2]/td/div/table/tbody/tr[1]/td/table/tbody/tr/td[2]/input";
    static String LogonPasswordbox = "/html/body/div[1]/div[4]/table/tbody/tr/td/div/table/tbody/tr[2]/td/div/table/tbody/tr[2]/td/div/table/tbody/tr[2]/td/table/tbody/tr/td[2]/input";
    static String LoginscreenLoginbutton="/html/body/div[1]/div[4]/table/tbody/tr/td/div/table/tbody/tr[2]/td/div/table/tbody/tr[2]/td/div/table/tbody/tr[4]/td/table/tbody/tr/td[2]/div/table/tbody/tr/td/a/span/span/span[1]";
    static String Maindrphdob= "/html/body/div[1]/div[4]/table/tbody/tr/td/div/table/tbody/tr[5]/td/div/table/tbody/tr[1]/td/table/tbody/tr/td[2]/table/tbody/tr/td[2]/div";
    static String Gender = "/html/body/div[1]/div[4]/table/tbody/tr/td/div/table/tbody/tr[5]/td/div/table/tbody/tr[1]/td/table/tbody/tr/td[2]/table/tbody/tr/td[1]/input";
    static String TitleList = "/html/body/div[6]/div";

Java测试脚本

import java.io.File;
public class OneRiskMotorBind extends MappingRepository{

final static String CHROME_DRIVER_PATH = "chromedriver-2.3.1.exe";
private static Random ran = null;
//private static final String ComboBox = null;
   private static String retry = null;
   static DesiredCapabilities desiredCapabilities;
   static WebDriver driver;
   static //initialise string objects
   String dbset = null;
   String RndSurname = null;
   static String retry2 = null;
   //Select the environment
   static String environment = "12";

    static String Brand = "Test";
    static String TitleList = "Mr";
    static String Gender = "M";
    static String Maindrphfirstname = "Test"; 
    static String Maindrphdob = "12091995";
    static String Maindrphaddyone = "127";

当前python代码示例:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select, WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time
from selenium.common.exceptions import TimeoutException


class PortalLogin(unittest.TestCase):
def setUp(self):
    self.verificationErrors = []
    self.accept_next_alert = True

def test_portal_login(self):

    self.driver = webdriver.Firefox()#new
    driver = self.driver
    driver.get("App URL")
    driver.maximize_window()


    try:
        element_present = EC.presence_of_element_located((By.ID, 'email'))
        WebDriverWait(self.driver, 10).until(element_present)
        print ("Page is ready!")
    except TimeoutException:
        print ("Timed out waiting for page to load")

    #time.sleep(5)
    driver.find_element_by_id("email").click()
    driver.find_element_by_id("email").clear()
    email.send_keys("[email protected]")

参考方案

我可能会被标记为将其添加为答案,但是我还没有能力发表评论。我很难理解这个问题是什么...如果可以,您是否可以说出一个特定的一句话问题?还是您的目标清单?

Eclipse-Google Guice - java

我一直在尝试在eclipse插件开发中使用Google Guice。我已经将Guice jar导入为另一个插件项目。但是,Guice无法以某种方式注入依赖性。有任何想法吗???这是错误消息com.google.inject.ConfigurationException: Guice configuration errors: 1) No implementa…

是否有任何插件或快捷方式可从弹出窗口复制eclipse中的变量值? - java

如何将下面显示的弹出窗口中的变量值复制到剪贴板?欢迎任何插件或键盘快捷键(首选)的建议。想象一下,如果此变量包含18K值,这就是我的程序将要执行的操作。在这种情况下,我当然不能有效地进行调试。 参考方案 具有18k值的方案当然不值得调试。将用例缩小到几个值,以重现该错误或任何您想要的东西。该问题并未说明您正在查看的弹出窗口是什么,但我认为它是“检查变量”弹出…

为什么Eclipse执行我的Java程序的旧版本? - java

我的程序有一个错误,导致引发ClassCastException。我省略了程序中导致该异常的行,并做了一些其他小的更改,但是每次运行它时,似乎都在运行该程序的旧版本,因为仍会抛出ClassCastException并且stacktrace指向程序中不存在的行!知道为什么会这样吗?重新启动Eclipse并没有帮助。 参考方案 如果Eclipse由于语法错误而无…

如何在Eclipse中备份用户库? - java

我在一个项目中有100多个罐子。我已经为其中大多数手动定义了源jar的位置,以便javadoc可以在IDE中方便地使用。现在,如果必须在另一台计算机上配置IDE,那么我不想再经历整个过程。我可以备份用户库定义并将其导入到另一个Eclipse实例中吗?只要可以在Eclipse中使用javadoc,并且不需要重复为每个jar链接源jar的手动工作,就可以使用替代…

在Eclipse中创建新的Java类时,静态选项被禁用 - java

当我尝试在Eclipse中创建新的Java类时,“修改器”部分下的static选项显示为禁用。这是为什么? 参考方案 static修饰符表示成员(无论是字段,方法还是内部类)都属于该类,而不是其特定实例。顶级类不属于任何类(它不在另一类之内),因此不能为static。只有内部类可以是static。