Tag: selenium

我可以使用数组或哈希映射在页面对象模型中组织对象吗?

我是Selenium自动化的新手。 我对java有很好的了解。 我创建了用于用户注册的测试脚本。 我已经使用了页面对象模型。 这是我的页面对象脚本。 这是我用的 public class SIgnUpTest extends PageObject { @FindBy(id=”merchantName”) private WebElement merchant; @FindBy(id=”merchantCode”) private WebElement code; @FindBy(id=”categoryId”) private WebElement category; @FindBy(id=”description”) private WebElement description; @FindBy(id=”merchantLogo”) private WebElement logo; @FindBy(id=”btnNextStep1″) private WebElement Next; public SIgnUpTest(WebDriver driver) { super(driver); } public void enterName(String name, String code,String description){ this.merchant.sendKeys(name); this.code.sendKeys(code); this.description.sendKeys(description); } public void […]

在selenium上获得以下错误

我在selenium上遇到以下错误,我不知道如何解决它或我应该做什么, 未知错误:未处理的检查员错误:{“code”: – 32603,“message”:“无法导航到无效的URL”}(会话信息:chrome = 29.0.1547.57)(驱动程序信息:chromedriver = 2.2,platform = Windows NT 6.1 SP1 x86_64)(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:3毫秒构建信息:版本:’2.35.0’,修订版:’c916b9d’,时间:’2013-08-12 15:42 :01’系统信息:os.name:’Windows Server 2008 R2’,os.arch:’x86’,os.version:’6.1’,java.version:’1.7.0_04’会话ID:6c0f76e6f67873a6318edab1d66e4ccf驱动程序信息:org .openqa.selenium.chrome.ChromeDriver Capabilities [{platform = XP,acceptSslCerts = true,javascriptEnabled = true,browserName = chrome,chrome = {chromedriverVersion = 2.2},rotating = false,locationContextEnabled = true,version = 29.0.1547.57,cssSelectorsEnabled = true,databaseEnabled = true,handlesAlerts = true,browserConnectionEnabled = false,nativeEvents = true,webStorageEnabled = true,applicationCacheEnabled = false,takesScreenshot = […]

如何为jquery自动完成文本字段添加selenium测试覆盖率

我有一个文本字段,jquery自动完成器绑定到它。 HTML JavaScript的 $(‘#autoCompleter’).delegate(“input”, “focus”, AutoCompleter); var AutoCompleter = function(event) { $(this).autocomplete({ source: function(request, response) { jQuery.extAjax({ url: url, data: data, success: response }); }, select: function(event, ui) { if (ui.item.value.match(/^Enter more characters…$/)) { return false; } }, focus: function(event, ui) { if (ui.item.value.match(/^Enter more characters…$/)) { return false; } }, minLength: 2 }); $(this).autocomplete(“search”, […]

如何调试Firefox警报框自动关闭并且无法检测Serenity BDD中的警报?

[main] ERROR net.serenitybdd.core.Serenity – 不存在警报(警告:服务器未提供任何堆栈跟踪信息) 我的问题与这个“ 用Selenium WebDriver未检测到的Firefox警报框 ”完全相似 但我无法找到解决方案。 即使我已经尝试了所有类型的等待,更改了Firefox版本并尝试了共享链接中提到的解决方案。 但是,要么我无法实现它,要么它无法正常工作。 执行此任务时,当我单击“更新”按钮并且工作正常时,会弹出手动弹出窗口。 但是,当我使用自动弹出显示执行相同操作并立即在几分之一秒内自动关闭时,平静会抛出无警报未找到的错误。 此外,自动化期间出现的警报窗口与手动执行期间发现的警报窗口略有不同。 如果您想在Windows中看到差异,请参阅上面分享的链接。 public void i_click_update_button() throws InterruptedException { btn_update.waitUntilClickable().click(); // clicks the button & pop-up comes } public void Accept_POP_UP() throws InterruptedException { getAlert().accept(); // code to accept the alret. I have already tried implementing wait & everything. problem is pop-up […]

如何在Openlayers上从中心找到Polygon的偏移值

我计算了(x1,Y1)和(x2,Y2)并计算了它们之间的差异(蓝线)并将这些像素值给予驱动程序点击但我无法点击多边形(Point)。 1.首先,鼠标将根据窗口转到地图的中心,其中(x1,y1)=(960,520)但驱动程序会将这些值视为(0,0)。 2.现在我需要计算从地图中心到每个多边形的偏移值。(x1,y1)=(960,520)和(x2,y2)=(1000,232) (x1,y1)和(x2,y2)之间的差异将给出点与中心的距离。例如:(x3,y3) 下面的代码 try { driver.get(“http://localhost:8090/demo/”); System.out.println(“demo opened”); Thread.sleep(15000); WebElement can = driver.findElements(By.tagName(“canvas”)).get(0); Actions builder = new Actions(driver); builder.moveToElement(can,0,0).click().perform(); Thread.sleep(12000); WebElement eler1x = driver .findElement(By.xpath(“/html/body/div[2]/div/div/div/div[3]/div/div/div[17]/div”)); String val1 = eler1x.getText(); System.out.println(val1); WebElement eler1y = driver .findElement(By.xpath(“/html/body/div[2]/div/div/div/div[3]/div/div/div[19]/div”)); String val2 = eler1y.getText(); System.out.println(val2); double x1 = Double.parseDouble(val1); //error line double y1 = Double.parseDouble(val1); double y1 = […]

创建类对象的类

我是新手,我正在学习webdriver和java :)我有初学者的问题。 我创建了类locators(findBy)和使用此定位器的方法( senKeys() , click()等) – 我使用pagefactory 。 HomePage LoginPage … 我的主类AddNewLeadTest是一个类,我用类定位器初始化方法,我这样做: HomePage hp = new HomePage(driver); hp.loginButton.click() 我想这样做: HomePage.loginButton.click() 它更快,我不必为每个xxxPage类在AddNewLeadTest创建新对象。 我应该如何编写类/方法来简化创建新对象? 我找到了我想在我的项目中使用的示例(在C#中),但我不知道如何在Java中使用它。 见下文。 public static class Pages { private static T GetPage() where T : new() { var page = new T(); PageFactory.InitElements(Browser.Driver, page); return page; } public static AboutPage About { get […]

获得价值无法理解

我正在编写一个selenium代码来执行以下操作。 在文本框中输入值。 选择下拉值。 选择一个单选按钮。 按下go按钮。 当我这样做时,我将得到一个结果列表,我想得到第一个结果块的标题。 以下是我的代码。 import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; public class Test1 { public static void main(String[] args) throws InterruptedException { WebDriver driver; System.setProperty(“webdriver.gecko.driver”, “C:\\Users\\home\\Downloads\\geckodriver.exe”); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); driver = new FirefoxDriver(capabilities); driver.get(“https://www2.chubb.com/us-en/find-agent-page.aspx”); driver.findElement(By.xpath(“.//*[@id=’tbAddress’]”)).sendKeys(“60089”); driver.findElement(By.xpath(“.//*[@id=’cphHeroContent_drpDistanceMiles’]”)).sendKeys(“2”); driver.findElement(By.xpath(“.//*[@id=’cphHeroContent_rdType_0′]”)).click(); driver.findElement(By.xpath(“.//*[@id=’cphHeroContent_btnSearch’]”)).click(); String title = driver.getTitle().toString(); System.out.println(title); Thread.sleep(10000L); […]

Selenium Scripts在命令行上

有没有办法从命令行运行selenium webdriver测试脚本,这些脚本是通过Eclipse IDE使用Java和JUnit编写的? 我一直在尝试使用Ant或Maven,但我无法使用它。 有人可以提供一些关于去哪里的建议吗?

使用ChromeDriver和无头模式下载Java,Selenium中的文件

由于我仍然不清楚如何使用ChromeDriver中的–headless模式下载文件 – selenium [Java],请在此处添加如何执行此操作的示例,我尝试这样做(文件下载工作正常 – 无头选项): ChromeOptions lChromeOptions = new ChromeOptions(); HashMap lChromePrefs = new HashMap(); lChromePrefs.put(“profile.default_content_settings.popups”, 0); lChromePrefs.put(“download.default_directory”, _PATH_TO_DOWNLOAD_DIR); lChromePrefs.put(“browser.set_download_behavior”, “{ behavior: ‘allow’ , downloadPath: ‘”+_PATH_TO_DOWNLOAD_DIR+”‘}”); lChromeOptions.addArguments(“–headless”); lChromeOptions.addArguments(“–disable-gpu”); lChromeOptions.setExperimentalOption(“prefs”, lChromePrefs); WebDriver lWebDriver = new ChromeDriver(lChromeOptions); 据我所知,自从Chrome v60 +设置Browser.setDownloadBehaviour(true, _DIRECTORY) ,无法以无头模式下载文件,但我无法找到ChromeDriver是否已经支持它的信息,或者只是我使用错误的chrome首选项作为参数 ChromeDriver版本:2.34 Selenium + WebDriver版本:3.8.1

断言网页中缺少元素,给出NoSuchElementException

需要声明网页中没有这样的元素,当尝试使用fieldValueBox.isDisplayed(); 而不是“假”它抛出“NoSuchElementFound”exception。 现在我正在使用’try catch’并在’catch’中做出决定