2016年10月23日星期日

用Selenium WebDriver处理键盘和鼠标事件


在许多情况下,我们将遇到一个方案,我们希望自动执行特殊类型的键盘和鼠标事件,以及为哪些Selenium Web Drover提供带有类名操作的提前用户界面API和 操作。Selenium中的Handling键盘事件和鼠标事件非常简单,所以让我们从它开始。

让我们了解我们如何在硒unibet中使用特殊事件
视频教程 -


unibet场景 - 请考虑您希望在下面给出的屏幕截图时对关于ME菜单执行鼠标过度操作。当您在鼠标悬停时观察我的网站菜单时,它将改变后面的颜色,因此让我们看看我们如何使用Seleniumunibet它。



unibet用例 -


ackage mypackage;

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;

public class myclass {

public static void 主要的(String[] args) {
String baseUrl = "http://www.yubo666.com/";
       System.setProperty("webdriver.chrome.driver", 
         "C:\\chromedriver_win32\\chromedriver.exe");
        WebDriver driver=new ChromeDriver();

        driver.get(baseUrl);           
        WebElement aboutMe= driver.findElement(By.id("aboout_me"));
    
        
        Actions builder = new Actions(driver);
        Action mouseOverAboutMe = builder
                .moveToElement(aboutMe)
                .建造();
        
        String bColor = td_Home.getCssValue("background-color");
        System.out.println("Before Mouse hover: " + bColor );        
        mouseOver关于Me.perform();        
        bColor = td_Home.getCssValue("background-color");
        System.out.println("After Mouse hover: " + bColor );
        driver.quit();
}
}

最常使用 键盘和鼠标赛事API -

1. Clickandhold() - 单击鼠标位置的咔嗒声。

2. ContextClick() -
在尖鼠标位置执行上下文(右键单击)。

3. DoubleClick() -
在尖鼠标位置执行双击。

4. Draganddrop(源,目标) -
在源元素的位置执行单击和保持,移动到目标元素的位置,然后释放鼠标。
源 - Web元素以模拟按钮。
目标 - Web元素移动并释放鼠标。

5.Draganddropby(源,X-Offset,Y-Offset) - 在源元素的位置执行单击和保留,通过给定的偏移移动,然后释放鼠标。
源 - Web元素以模拟按钮。
Xoffset-ofthorizo​​ntal举动。
yoffset-偏移o vvertical move。

6.Keydown(Modifier_Key) -
没有释放修改器密钥 - 后续交互可能会假设它保持按下。
修改器键 sample = keys.alt,键。响应或键.Control等

7.KEYUP(修饰符_KEY) -
发布已按下修改密钥.

8.MoveByOffset(X-Offset,Y-Offset) -
通过给定的偏移将鼠标从其当前位置移动。
X-Offset-水平偏移。 (负值= 将鼠标移动左侧)
y-offset-垂直偏移(负值=移动鼠标向上)

9. MovetoElement(Toolement) -
将鼠标移动到元素的中间

10.Release() - 在当前鼠标位置处释放按下的鼠标按钮 指针。

11.sendkeys(onelement,charsequence) -
将一系列击键发送到元素上。

请与您的朋友分享此项,并在评论部分留下您的反馈。

2016年10月22日星期六

与硒的桌子内的网元素



使用XPath访问表中的Web元素是非常重要的,因为您需要它需要它来编写自动seleniumunibet用例。开发人员非常困难,为每个表元素提供ID,因此我们需要使用XPath来访问每个单元元素。所以这篇文章非常有用的是使用硒理解访问表。

访问表格单元元素 -

HTML代码 -
 

<html>
<body>
<table id="桌子1">
<table>
<tr>
<td>first </td>
<td>second </td>
</tr>
<tr>
<td>third</td>
<td>four </td>
</tr>
<table>
</body>
</htmt>

XPath写作 - 让我们写XPath以单击具有文本的单元格 “拔亮”

正如我们知道XPath定位器  start with a double forward slash "//"和then followed by the parent tag name. Since we are dealing with tables, the parent element will be the <table>标签。我们XPath的第一部分将是 “//桌子”.

带标签的元素<tbody> is under <table> means <tbody> is child tag of  of <table>。现在,Oue XPath将被修改为 "//table/tbody".

现在里面<tbody>我们需要访问第二个<tr> and first <td>所以现在XPath将被修好 “///table/tody.tr[2]/td[1]”。

WebElement thirdCell = driver.findElement(By.Xpath("//table/tbody/tr[2]/td[1]"));  

访问嵌套表单元格元素 -

HTML代码 -


<html>
<body>
<!-- Outer Table -->
<table id="桌子1">
<tbody>
<tr>
<td>first </td>
<td>second </td>
</tr>
<tr>
<td>third</td>
<!-- Inner Table -->
<table id="桌子2">
<tbody>
<tr>
<td>first 1</td>
<td>second 2</td>
</tr>
<tr>
<td>third 3</td>
<td>four 4 </td>
</tr>
</tbody>
<table>
</tr>
</tbody>
<table>
</body>
</htmt>

XPath写作 -

XPath定位“第二个2"


WebElement thirdCell = driver.findElement(By.Xpath("//table/tbody/tr[2]/td[2]
                                                 +"/table/tbody/tr[1]/td[2]"));

使用属性访问表Elment -

当HTML代码中有多个表或者表格太多嵌套时,我们可以使用HTML代码中提供的任何属性,如ID,Width,Height,Values等。请参阅给出表ID的第一个HTML代码表1然后我们可以根据下面显示的XPath 


WebElement thirdCell = driver.findElement(By.Xpath("//table[@id=\"桌子1\"]/tbody/tr[2]/td[1]"));  


硒unibet检查网页中的链接

unibet网页内的所有链接正常工作或不是最重要的unibet场景。我们可以使用Selenium非常轻松地unibet这种情况。我们知道链接将在里面 HTML标记<a> 我们可以使用.gname(“a”)定位器并在Java中使用迭代器来使过程简单。

这个简单的例子将帮助您执行各种类型的unibet -

1.使用Seleniumunibet网页上的断开链接。
2.单击链接或单击所有链接 网页验证链接正在正常工作。
3.计算网页上的链接数。
4.获取网页上的链接列表。
5.找出网页上的非工作链接列表。

例子 -

考虑我们想在主页中unibet所有链接 www.qaautomated.com.

unibet用例 -

签出以下unibet用例,并阅读评论部分中提到的描述以了解流程。

package selenium.tests;

import java.util.List;



import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class TestAllLinks { 
 
 public static void 主要的(String[] args) {
        String baseUrl = "http://www.yubo666.com/";
        System.setProperty("webdriver.chrome.driver", 
         "C:\\Users\\chromedriver_win32\\chromedriver.exe");
        WebDriver driver=new ChromeDriver();
        String notWorkingUrlTitle = "Under Construction: QAAutomated";
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

        driver.get(baseUrl);
        List<WebElement> linkElements = driver.findElements(By.tagName("a"));
        String[] linkTexts = new String[linkElements.size()];
        int i = 0;

        //extract the link texts of each link element
        for (WebElement elements : linkElements) {
            linkTexts[i] = elements.getText();
            i++;
        }

        //test each link
        for (String t : linkTexts) {
            driver.findElement(By.linkText(t)).click();
            if (driver.getTitle().equals(notWorkingUrlTitle )) {
                System.out.println("\"" + t + "\""
                        + " is not working.");
            } else {
                System.out.println("\"" + t + "\""
                        + " is working.");
            }
            driver.navigate().back();
        }
        driver.quit();
    }
}

输出 -

“家”正常工作
“关于我”正常工作
“联系我们”不起作用....

如果您发现此用品,请使用下面给出的共享选项与您的朋友分享帖子。您可以在评论部分中编写您的反馈和建议。

隐含等待,明确等待和流利的等待在硒中等待



正如我们所面临的那样,我们需要等待在Web应用程序中加载。这是我们的硒unibet失败的地方 尝试在屏幕上不可见的Web元素unibet。在这种情况下,如果未找到Web元素,则它会抛出异常“ElementNotVisibleException.“。我们可以使用”等待“来解决硒中不可预测的unibet用例故障的问题。

视频教程 -

 

在这篇文章中,我们将看到3种类型的等待在硒中广泛使用 -

1.impleic等。
2.解释等待
3.Fluent等待

1.隐含等待 -  

隐式等待意味着通知Selenium Web驱动程序等待特定的时间,如果在等待特定点后,Web元素在等待该特定点之后不可见,则抛出“未找到此类元素的异常”。 

查看下面给出的示例以了解如何在Seleniumunibet案例中使用隐式等待。在下面的unibet用例下,我们将在打开浏览器后添加等待30秒,以便完全加载页面。我们隐含地指定了时间和时间单位这被称为隐含等待。
方法 makeiclywait() 接受2参数第一个是时间值,第二个是时间单位,如天,小时,分钟,秒,毫秒等。

package com.selenium.tests;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; 
import java.util.concurrent.TimeUnit; 
 public class BrowserTests {

 public static void 主要的(String[] args) throws Exception {
  System.setProperty("webdriver.chrome.driver", 
 "C:\\chromedriver_win32\\chromedriver.exe");
  WebDriver driver=new ChromeDriver();
  driver.get("http://qaautomated.blogspot.in");
  driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); 
  driver.quit();
 }

}
 

2.明确等待 -

在明确的等待随着等待时间,我们还提供了等待条件。它将等到抛出异常之前提供的条件或最高等待时间“ElementNotVisibleException.“。

我们可以说,显式等待是智能等待,因为它在指定条件下动态等待。查看以下unibet用例示例,用于使用Selenium明确等待。我们需要实例化WebDriverwait 使用Web驱动程序引用和时间帧等待对象以秒为单位。

然后我们可以使用 直到() 通过预期等待条件的方法并在我们的unibet用例中使用它,以便等待,直到屏幕上可见元素。我们正在使用  VisibillyOfElementLocated() 条件。要了解Eclipse IDE中的其他条件,请按Eclipse IDE中的预期信息条件,然后按CLTR + Space Bar,您将获取可以在显式等待中使用的条件列表。

package com.selenium.tests;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; 
import java.util.concurrent.TimeUnit; 
 public class BrowserTests {

 public static void 主要的(String[] args) throws Exception {
 System.setProperty("webdriver.chrome.driver", 
 "C:\\chromedriver_win32\\chromedriver.exe");
  WebDriver driver=new ChromeDriver();
  WebDriverWait wait = new WebDriverWait(WebDriverRefrence,20);
  driver.get("http://qaautomated.blogspot.in");
  WebElement aboutMe;
aboutMe= wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("about_me")));      
aboutMe.click();
  driver.quit();
 }

}
3.流利的等待 -

流利的等待是我们可以设置重复时间循环以验证是否满足条件。流畅的等待允许使用时间帧来设置频率以常规时间间隔验证给定的预期条件。此等待在unibet场景中使用,其中元素加载时间是变量(它可以是10,15或20秒),在这种情况下我们可以使用频率来处理“ElementNotVisibleException.“。

选中以下示例我们将等待时间定义为20秒,然后5秒频率。这意味着要等待20秒钟,以在每5秒后满足条件,直到满足条件。




package com.selenium.tests;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; 
import java.util.concurrent.TimeUnit; 
 public class BrowserTests {

 public static void 主要的(String[] args) throws Exception {
 System.setProperty("webdriver.chrome.driver",  
"C:\\chromedriver_win32\\chromedriver.exe");
  WebDriver driver=new ChromeDriver();
  Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)       
.withTimeout(20, TimeUnit.SECONDS)    
.pollingEvery(5, TimeUnit.SECONDS)    
.ignoring(NoSuchElementException.class); 
  driver.get("http://qaautomated.blogspot.in");
  WebElement aboutMe= wait.until(new Function<WebDriver, WebElement>() {       
public WebElement apply(WebDriver driver) { 
return driver.findElement(By.id("about_me"));     
 }  
});  
  
aboutMe.click(); 

  driver.quit();
 }

}

2016年10月15日星期六

硒 API执行不同的行动

在本教程中,我们将学习关于Selenium Web Driver的重要事项,而无需此操作,您将无法开始写入硒unibet案例。在我们的Web应用程序中,我们有各种Web元素来访问,例如文本框,单选按钮,复选框,下拉,多选择下拉等。让我们了解如何使用Selenium Web驱动程序+ Java访问这些Web元素。

1.将值输入文本框 -
将值输入到输入文本框非常简单使用Selenium非常简单,首先使用其ID,类名或XPath找到文本框,然后使用 sendkeys() 进入值的方法。下面的代码线将在具有id用户名的文本框中输入“myname”字符串。

例子 - driver.findementement(by.id(“用户名”))。sendkeys(“myname”);

2.从TextBox中删除值 -
用于从文本框中的清除值Selenium提供Clear()方法。

例子 - driver.findElement(by.id(“用户名”))。clear();

3.使用单选按钮选择值 -
我们需要使用Click()方法切换单选按钮值。

例子 -  driver.findElement(by.xpath(“//输入[text()='option1']”))。单击();

4.复选框选择/取消选择 -
像单选按钮一样,使用Click()方法完成单选按钮即可切换。在下面的示例中,首先,我们找到复选框,然后在其上执行单击操作,然后如果选中复选框,则将状态显示为true,如果取消选择复选框,则为false。

例子 - webelemnt checkbox = driver.findElement(by.id(“check_box”));
                  checkbox.click();
                system.out.println(checkbox()。已发行);

5.单击链接文本 -
要单击“链接文本,请单击()方法使用,并且对于所选链接文本,使用LinkText()或使用PartialLinkText()。

例子 - driver.findement(by.linktext(“点击此处”))。单击();
                                    OR
                  River.Findement(by.partiallinktext(“here”))。单击();

6.下拉访问 -
1.进口包 org.openqa.selenium.support.ui.Select.
 导入org.openqa.selenium.support.ui.Select..
2.将下拉Web元素声明为SELECT类的实例。
选择DropDown = New Select(驱动程序.FindElement(by.id(“citylist”))))))
3.我们可以使用任何SELECT类方法来在下拉下执行操作
 dropdown.selectbyvisibletext(“delhi”);


如果您发现此帮助,请与您的朋友分享并在下面的评论部分发布您的问题和反馈。通过Google +加我或在Facebook上关注我以获得最新的发布更新。



 

硒介绍



 

什么是硒?

硒是Web基础应用程序的免费开源自动化unibet工具。 Selenium非常类似于HP提供的QTP(质量unibetPro)工具,但它只专注于基于Web的应用程序。 Selenium附带各种方便的自动化unibet工具 硒ide,硒rc,硒网司机和硒网。在这篇文章中,我将简要解释所有这些工具,以便您可以为自动unibet选择更合适的工具。根据最新的释放,硒RC和硒以单独的套装合并,称为硒2。

视频教程 -

 

硒ide.

硒ide.(集成开发环境)是最简单的框架,可为Firefix浏览器附加提供。它用于记录和播放unibet用例。因此,这具有非常有限的功能,如果您想编写提前unibet用例,那么您必须使用更多的预先硒框架,如Selenium RC或Selenium Web驱动程序。

优点 -
1.非常易于使用。
2.除了HTML基础知识外,不需要编程语言。
3.录制的unibet用例可用于在Selenium RC或Web驱动程序中导出和重用。
4.有内置的帮助和报告功能。

cons
1.仅适用于Firefox浏览器
2.我们只能创建unibet原型。
3.无法添加迭代和条件运算符。
4.unibet执行需要更多时间。

 

硒RC.

硒遥控器是 第一个unibet框架允许用户使用他们更喜欢的编程语言。 Selenium RC支持Java,C#,PHP,Python,Perl,Ruby。

优点
1.支持交叉浏览器和跨平台unibet。
2.我们可以在我们的unibet代码中添加迭代和条件运算符。
与硒IDE相比,它还支持更快的执行。
4.附带名单方便API,以执行提前unibet。
5.我们可以使用Selenium RC执行数据驱动的unibet。

cons
1.一个必须具有编程知识来使用Selenium RC。
2.对于unibet执行执行Selenium RC服务器的实例。
3.与Selenium Web驱动程序相比,unibet执行时间。
4. Selenium RC使用Java脚本导致不一致。

 

硒网司机

与Selenium IDE和RC相比,Selenium Web驱动程序具有更强大的unibet框架。它支持Selenium RC支持的所有语言,但它不使用JavaScript,因此使unibet案例更加一致。

优点
1.使用Selenium Web驱动程序编写的unibet用例直接与浏览器通信,而无需任何服务器。
2.执行更快。

缺点 -
1.这不容易支持新浏览器

 

硒网格

硒网格工具用于同时与不同的浏览器并行运行unibet用例。它利用了枢纽和 节点概念并节省时间以获得unibet案例执行。

我希望这有助于您了解Selenium提供的Selenium和unibet套装的基础知识。如果您发现它有用,请与您的朋友分享。在下面给出的评论部分中,您的问题和反馈。





2016年10月11日星期二

硒apis找到元素

在我们的 以前的教程 我们已经看到如何检查网页以获取HTML代码。在此HTML代码的基础上,我们也看到了如何找到 XPath. 找到元素。除了XPath之外,还有不同的方法来使用Selenium工具提供的API来定位元素。 

在我们的unibet案例中,我们将编写一系列步骤,我们希望自动化类似单击按钮并在TextBox中输入文本。要执行此操作,以便我们在哪个按钮上查看我们要点击的按钮并将其传递给Selenium API。

我们看到最常用的API与简单的例子。

1.通过ID查找

html =<按钮ID =“submit1”class =“cname”> Submit </button>

selenium = webelement subsumbutton = driver.findelement(by.id(“submit1”));

2.通过链接查找

html =<a href="http://www.yubo666.com" > Click Here </a>

selenium = webelement linktext = driver.findement(by.linktext(“点击此处”));

3.通过类名称找到

html =<按钮ID =“submit1”class =“cname”> Submit </button>

selenium = webelement subsumbutton = driver.findElement(by.class(“cname”));

4.通过部分链接查找

html =<a href="http://www.yubo666.com" > Click Here </a>

selenium = webelement linktext = driver.findElement(by.partiallinktext(“单击”));

5.找到XPath

html =<按钮ID =“submit1”class =“cname”> Submit </button>

selenium = webelement submitbutton = driver.findElement(by.xpath(“//按钮[@text()='提交']”));


通过这种方式,您可以使用与Web元素关联的HTML代码定位在Seleniumunibet用例中,以便您可以对其中的操作执行鼠标单击,键入文本和双击等。

我希望这篇文章有助于你。请在以下意见部分中分享您的反馈及疑问。这给了我越来越多地写的动力。

视频教程 -  



2016年10月10日星期一

如何使用espressounibet自动完成文本框

这是现在最常见的unibet场景,因为许多应用正在使用自动完成文本框/自动填充文本框。如果您尚未遇到此目的,则可以在开始键入内部位置填充时查看您的Google地图应用程序,然后显示匹配结果的下拉列表,您可以从列表中选择任何一个才能继续。这篇文章是关于递送unibet用例,您需要从自动完成文本框中选择结果。

让我们在下面的谷歌地图上看到以下示例,让我们编写浓缩咖啡unibet案例来处理自动完成文本框值选择。

自动完成文本框unibet自动化
自动完成文本框unibet自动化

unibet场景 -

1.键入位置名称。
2.检查是否显示了匹配结果列表。
3.单击任何一个匹配结果。

unibet用例 -

1.在下面的样本unibet用例中,我们使用JUnitunibet框架。
2.我们通过使用违反申请的主要活动 @Rule Annotation.
3.我们正在使用Inroot()和Decor View以在主活动窗口中选择一个窗口。
4.首先,我们在位置字段中打字“禁止”,然后我们正在检查显示的前两个建议。
5.然后我们点击顶部建议。


@RunWith(AndroidJUnit4.class)
@LargeTest
public class MultiWindowTest {

    @Rule
    public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(
            MainActivity.class);

    private MainActivity mActivity = null;

    @Before
    public void setActivity() {
        mActivity = mActivityRule.getActivity();
    }

    @Test
    public void testAutoCompleteTextView() {
        // Type "ban" to trigger two suggestions.
        onView(withId(R.id.auto_complete_text_view))
                .perform(typeText("ban"), closeSoftKeyboard());

        // Check that both suggestions are displayed.
        onView(withText("Bangalore"))
                .inRoot(withDecorView(not(is(mActivity.getWindow().getDecorView()))))
                .check(matches(isDisplayed()));
        onView(withText("bangalore central mall"))
                .inRoot(withDecorView(not(is(mActivity.getWindow().getDecorView()))))
                .check(matches(isDisplayed()));
    }

        // Tap on a suggestion.
        onView(withText("Bangalore"))
                .inRoot(withDecorView(not(is(mActivity.getWindow().getDecorView()))))
                .perform(click());

        // By clicking on the auto complete term, the text should be filled in.
        onView(withId(R.id.auto_complete_text_view))
                .check(matches(withText("Bangalore")));
    }

    

}

我希望这篇文章有助于您解决您的自动完成文本框unibet问题。如果您发现它有用,请与您的朋友分享并在下面给出的评论部分提供反馈或建议。

2016年10月2日星期日

如何使用Android Studio配置Testng

在我们以前的教程中,我们了解了JUnitunibet框架 现在我们将了解一个名为Testng的一个更强大的unibet框架。 Testng Framework作为一些不同的功能,这使得它更强大的unibet框架。
什么是testng框架?
Testng是从JUnit和Nunit的启发中发育的unibet框架,具有额外的功能,使用更有效和使用简单。它是一个强大的自动化unibet框架,NG代表下一代。它为开发人员提供了编写更灵活和强大的unibet用例的权力。

testng的特征–
1.允许您在编写unibet用例时使用Java编程语言的新功能。
2.利junit它提供注释,以确定您的unibet方法和执行流程。
3. Pollat​​es编译时间unibet代码和运行时间配置。
4.提供强大的unibet用例执行支持。
5.只能进行多线程unibet。
6.本发明设计用于单元unibet,但现在允许负载unibet,并行unibet等。

这有更多和更多 我们在开始编码时我们将探讨越来越多。但是,在编写unibet用例之前学习unibet框架的基础知识是非常重要的,因为正确的框架选择就像为您的自动化框架的建筑支柱。

如何设置testng–

1.创建和Android项目或打开现有项目
2.转到应用程序 - > build.gradle
3.在依赖项部分中复制以下代码行。
      testcompile'org.tiestng:testng:6.9.10'




4.单击同步
5.一旦你得到建立成功的信息,那么你就准备好了。

Android项目结构的基础知识

与Android Studio编码看起来非常有希望,因为它是基于Intellij Idea的IDE,用于Android应用程序开发。即使我们不打算构建Android应用程序,我们也非常重要地理解项目结构,以便我们可以编码有效和可理解的自动化unibet框架。
Android项目结构等五个重要组成部分,如主要,Gradle,.idea,App和外部库。让我们详细讨论这一点。

1.主要项目 –这将是整个项目背景。无论您在Intellij Idea中做什么,您都在项目的背景下做到这一点。项目是一个组织单位,代表完整的软件解决方案。 Android Studio中的项目就像一个工作区。在Android Studio一个项目中,可以包含多个模块。这意味着,理论上,可以在同一项目中构建多个应用程序。

2. .IDEA –.Dea用于存储Android Studio中的项目特定元数据。

3。项目模块 –这是应用程序代码所在的实际项目文件夹。应用程序文件夹具有以下子目录。
   a) 建造:这具有Make Process的所有完整输出I.e.Clases.dex,编译的类和资源等。
  b) libs. :lib文件夹用于存储项目特定的JAR文件。
  c) SRC.:SRC文件夹可以具有应用程序代码和Android单元unibet脚本。你会发现两个名为的文件夹“androidTest” and “main”对应SRC文件夹。主文件夹包含两个子文件夹Java和RE。 Java文件夹包含所有Java代码,RES包含可滑动仪,布局等。

4. Gradle. –Gradle用于构建构建Procress。我们将在我们的巢穴中看到更多的DELAIS。

5.外部图书馆 - 这是一个参考图书馆和有针对性平台SDK的信息的地方。

Android项目结构
Android项目结构

如何使用Android Studio调试代码?

调试代码以找出unibet用例的流程,对于移动自动化unibet非常重要,因为如果有unibet用例执行错误,我们可以轻松找到它并快速修复它。

Android Studio 提供快捷键以调试代码并检查根本原因。请尝试以下步骤以调试您的unibet用例。打开在Android Studio中编写的任何unibet用例。

1. 设置调试指针 - 调试指针意味着引脚点从您想要启动调试模式的代码一行并运行代码的代码一侧只需单击,然后您将看到指示调试指针的红色点。
 

2. 在调试模式下运行unibet用例 -   右键单击unibet类名称  ->调试为“unibet类名”。


3.调试控制台 -   在调试模式下运行unibet代码时,代码将运行直到调试指针,然后在Android Studio的底部开放,该窗口打开,称为调试控制台。它现在在我们手中控制了逐行运行代码行。

4.按下下面的屏幕截图中突出显示的按钮按行记录unibet代码行。每次按下按钮,都会执行所选代码行。


5.如果您收到您正在寻找的错误,现在您想要运行整套代码,请按下在下面的窗口中突出显示的按钮。


6.如果要查看变量值,则打开变量控制台并查阅。

在编写自动化代码时,这是非常简单和重要的事情。与正在为移动自动化工作的人分享并在调试unibet代码上花费更多时间。快乐unibet:)

如何在Appium中使用ScrollTo()的垂直滚动?



我已经写过了 如何使用scrollto()执行垂直滚动?但是,如果您已更新了新的Java Client 4.1.2,则会注意到滚动键()方法已被推荐。所以在这篇文章中,我将解释一种执行垂直滚动的替代方法。这是非常简单且易于理解的,因此让我们开始。

unibet案例方案 -

1.启动申请
2.执行垂直滚动

找到x坐标 -
我们需要屏幕的y yourinates 并且发现有两种方式 -
1.使用指针位置 -
   *转到手机设置
   *单击开发人员选项
   *启用指针位置 
   *打开您的应用程序,然后单击水平标签的中段,然后您将获得x和y
      坐标但注意X-坐标。

2.使用UI Automator -  
  *开放UIAUTOMATOR检查员。
   * Take screen shot.
  *单击水平标签的中间,记下右上角显示的向下X坐标。

unibet用例 -
我们将实施 verticalscroll() 方法。在这种方法中,我们将获得屏幕尺寸,我们可以 找到我们的起点和终点,因为我们正在滚动。我们也有X协调,所以我们可以使用 Driver.Swipe()要执行垂直滚动,如下所示
2.我们正在使用循环滚动,直到我们找到预期的文本。


@Test
    public void testScroll()throws Exception
    {
        for(int i=0;i<4;i++)
        {
            Thread.sleep(2000);
            if (driver.findElement(By.name("end_item")).isDisplayed())
            {
                driver.findElement(By.name("end_item")).click();
                break;
            }
            else
            {
                verticalScroll();
            }

        }
    }
    public void verticalScroll()
    {
        size=driver.manage().window().getSize();
        int y_start=(int)(size.height*0.60);
        int y_end=(int)(size.height*0.30);
        int x= size.width / 2;
        driver.swipe(x,y_start,x,y_end,4000);
    }

使用此帖,您可以编写垂直滚动的unibet代码 指定的尺寸,垂直滚动,直到找到元素  and 垂直滚动直到最后。

我希望你找到这个 教程有用。在评论中分享您的反馈和问题 下面的部分。请在社交媒体上关注我以获得最新帖子 updates.