Loading...
Alexander7337 avatar Alexander7337 15 Точки

QA-Fundamentals-Test-Automation, Selenium-Exercise, Problem 6. Self reporting test

Искам да направя автоматично докладването на бъгове в GitHub. Стигнах до стъпката за кликане на бутона Submit new issue, но изглежда, че този бутон има свойства, който го правят некликаем, въпреки че съм вкарал текст като заклавие и описание.

Как да го направя въпросния бутон кликаем?

Има ли друг начин да се пусне Issue-то?

Това, което пробвах:

WebElement sendIssue = driver.findElement(By.xpath("/html/body/div[5]/div/div/div[2]/div[1]/div/form/div[2]/div[1]/div/div/div[3]/button"));

sendIssue.click();

Грешката:

org.openqa.selenium.WebDriverException: Element is not clickable at point (883, 547.7999877929688). Other element would receive the click: div class="modal-backdrop">

 

Тагове:
0
QA Fundamentals
MariyanMlechenkov avatar MariyanMlechenkov 29 Точки

Намятах го за бързо на C# - поства issue, надявам се да ти помогне... или пробвай да сложиш забавяне примерно 3-4 секунди преди/след като добавиш текст в полетата laugh

 

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using System.Threading;

namespace UnitTest
{
    [TestClass]
    public class UnitTest
    {
        private IWebDriver selenium;

        [TestInitialize]
        public void SetUp()
        {
            selenium = new FirefoxDriver();
        }

        [TestMethod]
        public void TestPost_Issue()
        {
            var validUsername = "username";
            var validPassword = "password";

            selenium.Navigate()
                .GoToUrl("https://github.com/login");

            var usern = selenium
                .FindElement(
                    By.Id("login_field")
                );

            var passw = selenium
                .FindElement(
                    By.Id("password")
                );


            usern.SendKeys(validUsername);
            passw.SendKeys(validPassword);

            var loginButton = selenium
                .FindElement(By.Name("commit"))
                ;

            loginButton.Click();

            Thread.Sleep(5000);

            selenium.Navigate()
                .GoToUrl("https://github.com/username/ts/issues/new");


            var bH = selenium
                .FindElement(
                    By.Id("issue_title")
                );
            Thread.Sleep(2000);
            var bB = selenium
              .FindElement(
                  By.Id("issue_body")
              );
            Thread.Sleep(2000);
            bH.SendKeys("body header");
            bB.SendKeys("bodyyyyyyyyyy");

            Thread.Sleep(5000);

            var enter =selenium.FindElement(By.XPath("/html/body/div[5]/div/div/div[2]/div[1]/div/form/div[2]/div[1]/div/div/div[3]/button"));

            enter.Click();

            Thread.Sleep(5000);
        }

    }
}
 

1
13/05/2016 17:18:41
Alexander7337 avatar Alexander7337 15 Точки

Супер, така разбрах откъде идва проблемът. Преди да изпратя Issue-то отивах при Labels, където ми активира прозорец с некликаеми опции, който оставаше активен, докато търся бутона Submit new issue. След като премахнах тази част, проработи кликът.

Java

***previous code***

WebElement newIssue = driver.findElement(By.xpath("/html/body/div[5]/div/div/div[2]/div[1]/div/div[1]/a"));
 newIssue.click();

/*      comment
WebElement applyLable = driver.findElement(By.xpath("/html/body/div[5]/div/div/div[2]/div[1]/div/form/div[2]/div[2]/div[1]/div/div[1]/button"));
 applyLable.click();

WebElement typeOfIssue = driver.findElement(By.id("label-filter-field"));
 typeOfIssue.sendKeys("bug");

WebElement clickType = driver.findElement(By.xpath("/html/body/div[5]/div/div/div[2]/div[1]/div/form/div[2]/div[2]/div[1]/div/div[1]/div/div/div[3]"));
 clickType.click();
*/

 WebElement issueTitle = driver.findElement(By.id("issue_title"));
 issueTitle.clear();
 issueTitle.sendKeys(issue);

 WebElement issueBody = driver.findElement(By.id("issue_body"));
 issueBody.sendKeys(String.format("Expected result: %s;%nActual result: %s", stringExpected, stringFound));

 try {
     Thread.sleep(5000);
 } catch (InterruptedException e) {
     System.out.println("caught exception");
 }

 WebElement sendIssue = driver.findElement(By.xpath("/html/body/div[5]/div/div/div[2]/div[1]/div/form/div[2]/div[1]/div/div/div[3]/button"));
 sendIssue.click();

 try {
     Thread.sleep(5000);
 } catch (InterruptedException e) {
     System.out.println("caught exception");
 }

Може би и pause може да се махне.

0
13/05/2016 18:09:06
Bobosam avatar Bobosam 185 Точки

Принципно има случаи когато може и да не можеш да кликнеш бутона. Тогава може да пробваш подобни:

pause.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[contains(text(),'Clear Bag')]")));

или 

continueBay.sendKeys(Keys.ENTER); замества continueBay.click();

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.