小编jag*_*zer的帖子

FirefoxDriver始终在"firstrun"页面上启动,打破所有测试脚本

从昨晚开始,FirefoxDriver一直在这个页面上打开:https://www.mozilla.org/en-US/firefox/42.0/firstrun/learnmore/.我尝试更改默认配置文件设置,但没有取得任何成功.

下面的问题http://stackoverflow.com/questions/33937067/firefox-webdriver-opens-first-run-page-all-the-time是类似的,但是我没有看到在哪里实现这四行代码,而我个人试图将它放入我的脚本中的尝试都证明是徒劳的.

这个问题昨晚完全出乎问题.我今天要做演示,我无法让任何脚本工作.

像这样实例化我的WebDriver实例将导致NoSuchMethodError:

                FirefoxProfile profile = new FirefoxProfile();
                profile.setPreference("browser.startup.homepage", "about:blank");
                profile.setPreference("startup.homepage_welcome_url", "about:blank");
                profile.setPreference("startup.homepage_welcome_url.additional", "about:blank");
                driver = new FirefoxDriver(profile);
                driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)

但摆脱profileFirefoxDriver把它带回上面提到的firstrun页面.

firefox selenium

6
推荐指数
2
解决办法
7541
查看次数

如何简化类似if语句的长列表?

我是公司的自动化工程师.最近,我写了一段我的经理绝对不接受的代码.

我被要求为涉及不同GUI的测试用例编写一些脚本.我的经理不接受的代码部分是一个if/else声明,用于检查GUI中提示的当前语言.

我被指示使用Sikuli,因此,我知道应用程序当前设置的语言非常重要,因此我的脚本可以单击正确的按钮(根据语言而改变).

我的想法是代码遍历if/else语句然后指向正确的按钮.示例:该if/else语句确定"ok"按钮当前是Suomi翻译,因此它将单击正确的按钮.

这是我的代码示例:

switch (button) {
case "ok":
    if (s.exists("imagerepo/language/catalan_ok.png") != null) {
                            s.click("imagerepo/language/catalan_ok.png");
                        } else if (s.exists("imagerepo/language/suomi_ok.png") != null) {
                            s.click("imagerepo/language/suomi_ok.png");
                        } else if (s.exists("imagerepo/language/italian_ok.png") != null) {
                            s.click("imagerepo/language/italian_ok.png");
                        } else if (s.exists("imagerepo/language/portuguese_ok.png") != null) {
                            s.click("imagerepo/language/portuguese_ok.png");
                        } else if (s.exists("imagerepo/language/english_ok.png") != null) {
                            s.click("imagerepo/language/english_ok.png");
                        } else if (s.exists("imagerepo/language/dutch_ok.png") != null) {
                            s.click("imagerepo/language/dutch_ok.png");
                        } else if (s.exists("imagerepo/language/spanish_ok.png") != null) {
                            s.click("imagerepo/language/spanish_ok.png");
                        } else if (s.exists("imagerepo/language/french_ok.png") != null) {
                            s.click("imagerepo/language/french_ok.png");
                        } else …
Run Code Online (Sandbox Code Playgroud)

java if-statement

5
推荐指数
1
解决办法
205
查看次数

网络上的ADB,没有在设备中启用的选项

我正在寻找一种最有效的方式,使用脚本发送命令将apk同时(或迅速地一个接一个)加载到30台平板电脑上。实际上,我想将我所有的平板电脑都插入网络,运行到我的计算机上,并运行一个脚本,该脚本将遍历所有可识别的IP地址并将apk推送到它们。我想完全消除将任何平板电脑连接到USB的需要。这是最重要的部分。

我的理解是,这是可能的,但是我遇到了一个似乎找不到答案的问题。

我的设备中没有启用“通过网络/ wifi进行adb”的选项。它们都在Android版本4.4.2上。我似乎找不到有关此功能的任何注释,这些注释已添加到更高版本中。是这样吗

networking android adb

5
推荐指数
0
解决办法
351
查看次数

在Selenium HtmlUnitDriver程序中捕获了SocketException

我写了一个小脚本,它接受我们公司收到的Epson打印机的默认IP地址,并根据要求自动更改.这是使用Selenium HtmlUnitDriver完成的.

脚本获取页面,插入新IP,然后提交它.因为一旦我们第二次提交IP就会更改,页面不再出现192.168.192.168,并且脚本不想完成.

以下是脚本:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class Main {
    public static void main(String[] args) {

        // Creating a new instance of the HTML unit driver.
        WebDriver driver = new HtmlUnitDriver();
        driver.get("http://192.168.192.168/ctcpip.htm");

        // Find and change the IP Address field.
        WebElement element = driver.findElement(By.name("IpAddress"));
        element.clear();
        element.sendKeys("192.168.192.169");
        element.submit();

        // Reset the printer. This changes it's IP as well, causing the initial driver page to no longer exist.
        WebElement reset = driver.findElement(By.name("Submit"));
        reset.submit();

        // …
Run Code Online (Sandbox Code Playgroud)

java selenium automation

5
推荐指数
1
解决办法
563
查看次数

for循环跳过数组中的第一个字符串

我目前在我的脚本中有一个问题,我使用for循环迭代元素数组并检查它们在GUI中的存在.我的问题是for循环总是跳过数组的第一个条目.

我目前的脚本如下:

public class GUIFunctionality {
    static Properties config = Data.getProperties("config");
    static int Pass = 0;
    static Screen s = new Screen();

    @Test(priority = 0)
    public static void loginGUI() {
        WebDriver driver = AutomationWebDriver.getWebDriver("firefox", config.getProperty("url"));

        // Test all GUI elements on login screen.

        String[] login_elements = { "loginbutton.png", "logintitle.png", "smalllogo.png", "remembermechecked.png",
                "signupbutton.png", "signuptitle.png", "changelanguage.png" };
        ArrayList<String> passed = new ArrayList<String>();
        ArrayList<String> failed = new ArrayList<String>();

        for (String base : login_elements) {
            String file = String.format("imagerepo/config/%s", base);
            if (s.exists(file) …
Run Code Online (Sandbox Code Playgroud)

java arrays sikuli

1
推荐指数
1
解决办法
278
查看次数

没有设置ANDROID_HOME?

我目前正在建立一个Appium平台,但找不到自己的ANDROID_HOME道路。我已将sdk下载并安装在中Users/User/Android/sdk。我的bash_profile样子是这样的:

export PATH=$PATH:/usr/local/bin
export JAVA_HOME=$/usr/libexex/java_home       
export ANDROID_HOME=Users/User/Library/Android/sdk 
PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform_tools
echo $ANDROID_HOME
Run Code Online (Sandbox Code Playgroud)

当我运行Appium Doctor时,出现以下错误消息: ? ANDROID_HOME is set but does not exist on the file system at "Users/Toast/Library/Android/sdk"

这就是Android Studio中定义的SDK的路径。我究竟做错了什么?

android path environment-variables

1
推荐指数
1
解决办法
5018
查看次数

我的字符串比较有什么问题?

我在Bash脚本中评估字符串表达式时遇到问题.此代码段会查找已连接的平板电脑的显示大小并将其存储在其中$displaySize.什么echo $displaySize叫,它回声1280x800.

displaySize=$($adb_env -s $usb shell wm size | awk '{print $3}')
echo "$displaySize"
fifteen="1920x1080"
ten="1280x800"
if [ "$displaySize" == "$fifteen" ] ; then
    echo "Configuring a 15\""
    foo ; fi
if [ "$displaySize" == "$ten" ] ; then
    echo "Configuring a 10\""
    bar ; fi
Run Code Online (Sandbox Code Playgroud)

代码应该跳过$fifteen if块并在块中运行$ten if,但它目前都会跳过这两个块.我究竟做错了什么?

bash

0
推荐指数
1
解决办法
42
查看次数