标签: selendroid

Selendroid作为网络刮刀

我打算创建一个Android应用程序,执行无头登录网站,然后从后续页面抓取一些内容,同时保持登录会话.

我首先在普通的Java项目中使用了HtmlUnit,它运行得很好.但后来发现HtmlUnit与Android不兼容.

然后我通过向登录表单发送HTTP"POST"请求来尝试JSoup库.但由于JSoup不支持JavaScript,因此生成的页面不会完全加载.

然后我建议看看Selendroid,它实际上是一个android测试自动化框架.但我真正需要的是一个支持JavaScript和Android的Html解析器.我发现Selendroid很难理解哪些我甚至无法弄清楚要使用哪些依赖项.

  • selendroid客户端
  • selendroid-独立
  • selendroid服务器

使用Selenium WebDriver,代码将如下所示.但有人可以向我展示一个类似Selendroid的代码示例吗?

    WebDriver driver = new FirefoxDriver();
    driver.get("https://mail.google.com/");

    driver.findElement(By.id("email")).sendKeys(myEmail);
    driver.findElement(By.id("pass")).sendKeys(pass);

    // Click on 'Sign In' button
    driver.findElement(By.id("signIn")).click();
Run Code Online (Sandbox Code Playgroud)

并且,

  1. 要添加到Gradle.Build文件的依赖项是什么?
  2. 要导入哪些Selendroid库?

selenium android web-scraping selendroid

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

如何将Selendroid添加到Android工作室进行网页抓取?

在回答之前请看下面的编辑!

我正在尝试使用Selenium设置动态网络报废,但是,我似乎无法找到必要的gradle依赖项/ lib文件添加到我的项目中.我查看了Selendroid/Selenium的网站,但无法找到必要的配置信息.我假设我需要webdriver,因为我将要抓取网页数据.作为旁注,我发现在找到与Android不兼容的HtmlUnit之后使用Selendroid,并且在找不到可行的替代品之后.所有帮助表示赞赏.

(解决这个问题的其他问题仍然没有答案)

编辑:所以使用Exeon的建议,我找到了Selendroid的以下依赖项:

__PRE__

但是,在运行我的应用程序时,我收到以下错误(重复大约10次):

__PRE__

注意,我也尝试使用以下内容:

__PRE__

但我遇到了同样的错误......

java android android-studio selendroid

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

如何使用Protractor测试原生Android应用程序

我有原生的Android应用程序,使用Ionic构建,因此e2e测试是使用Protractor编写的,并且可以与混合版本的应用程序一起使用.
我想弄清楚,如果可以在Android设备(或者至少是模拟器/ avd)上对本机应用程序运行这些测试吗?

我尝试过Appium - 没有运气,它试图在设备上运行浏览器.我不需要它.

Selendroid:
java -jar path-to-selendroid.jar -app path-to.apk
它执行,但是当我启动Protractor时,它试图运行一些AndroidDriver Webview应用程序(带有Selendroid徽标)而不是我的应用程序,因此所有测试都失败了.量角器配置:

seleniumAddress: 'http://localhost:4444/wd/hub',
baseUrl:         'http://10.0.2.2:8000',
capabilities:    {
    browserName: 'android'
},
Run Code Online (Sandbox Code Playgroud)

有可能吗?或者我最希望的是Appium/Selendroid在设备上运行移动浏览器?

android angularjs appium protractor selendroid

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

如何在Selendroid中执行滑动操作?

  1. 我尝试用以下编码进行滑动.
  2. 在运行测试用例时,不会发生滑动操作,我也没有收到任何错误消息.
  3. 如何从左向右滑动两侧,反之亦然.

有两种方法如下: -

方法1(使用TouchActions): -

    1. //Swipe Right to Left side of the Media Viewer First Page
                    WebElement firstPages = driver.findElement(By.id("media-list"));
                    TouchActions flick = new TouchActions(driver).flick(firstPages,-100,0,0);
                    flick.perform();

    2. //perform swipe gesture
                   TouchActions swipe = new TouchActions(driver).flick(0, -20);
                   swipe.perform();
Run Code Online (Sandbox Code Playgroud)

方法2(使用javascript): -

public static void swipe(WebDriver driver) {

            JavascriptExecutor js = (JavascriptExecutor) driver;
            HashMap<String, Double> swipeObject = new java.util.HashMap<String, Double>();
            swipeObject.put("startX", 0.95);
            swipeObject.put("startY", 0.5);
            swipeObject.put("endX", 0.05);
            swipeObject.put("endY", 0.5);
            swipeObject.put("duration", 1.8);
            js.executeScript("mobile: swipe", swipeObject);
        }
Run Code Online (Sandbox Code Playgroud)

java touch swipe selendroid

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

如何在 Appium ( selenium Java ) 中测试 Android Toast 消息

我正在使用 Selenium 和 Java 在 android 上运行脚本(通过 Appium 服务器)。我看到使用 selenium 来定位吐司是不可能的

driver.findElement(By.LinkText("User not logged in")
Run Code Online (Sandbox Code Playgroud)

在 Appium

但是可以在 Selendroid 中用于捕获 toast 消息。

有没有办法在同一个脚本中同时使用 Selendroid 和 Appium?

android-testing selenium-webdriver appium selendroid

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

Selendroid无法识别Android 7设备

我有一个运行Android 7.0的Nexus 5X(安全补丁级别:2016年11月5日;内部版本号:N5D91L)插入我的Mac并启用了USB调试.

ADB识别该设备(因此该解决方案不相关):

$ adb devices -l
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
016e07928f462163       device usb:337641472X product:bullhead model:Nexus_5X device:bullhead
Run Code Online (Sandbox Code Playgroud)

使用演示设置打开Selendroid服务器:

java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk
Run Code Online (Sandbox Code Playgroud)

但是当我检查时http://localhost:4444/wd/hub/status,设备未列在supportedDevices:

{
  "value": {
    "os": {
      "name": "Mac OS X",
      "arch": "x86_64",
      "version": "10.11.6"
    },
    "build": {
      "browserName": "selendroid",
      "version": "0.17.0"
    },
    "supportedDevices": [],
    "supportedApps": [
      {
        "mainActivity": "io.selendroid.testapp.HomeScreenActivity",
        "appId": "io.selendroid.testapp:0.17.0",
        "basePackage": …
Run Code Online (Sandbox Code Playgroud)

android selendroid android-7.0-nougat

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

如何验证selendroid中的Toast消息

我需要验证像"已成功创建"的Toast消息.我尝试使用linktext.但它不起作用.任何人都可以帮我这个吗?

java selenium automation android selendroid

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

如何在selendroid模式下运行appium测试(API <17)>

我想在真实设备上运行自动化测试,早些时候我在模拟器上做了这个(API> 17),但我尝试在selendroid模式下在Appium上运行的测试失败了.

以下是我为appium在selendroid模式下运行配置的功能.

Appium版本:1.0 Selendroid版本:0​​.10

我在端口号:6001和bootstrap端口:4001上运行appium,并且selendroid服务器在默认端口上运行:8080

private static String url = "http://localhost:"
            + System.getProperty("appium_port") + "/wd/hub";
private AppiumDriver driver;
private static DesiredCapabilities capabilities;



capabilities = new DesiredCapabilities();
File app = new File("en-android.apk");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Selendroid");
capabilities.setCapability(CapabilityType.PLATFORM, "ANDROID");
capabilities.setCapability("device", "Selendroid");
capabilities.setCapability("platformVersion", "4.1.2");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("app-activity",
        "testapp.android.gui.WelcomeActivity");
capabilities.setCapability("app-package",
        "testapp.android");

driver = new AppiumDriver(new URL(url), capabilities);
Run Code Online (Sandbox Code Playgroud)

以下是Applium服务器日志.

Appium日志:

error: Android devices must be of API level 17 or higher. Please change your device to Selendroid or upgrade Android on your device.
info: Stopping logcat …
Run Code Online (Sandbox Code Playgroud)

appium selendroid

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