抱歉,如果在其他地方都无法找到答案,我已经用我想出的各种方式来搜索问题。
无论如何,我是自动化测试的新手,并且我将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。