我是Selendroid的新手,想知道是否有人可以帮助我。我只是试图进行测试以确保它能正常工作。这是我的代码:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import io.selendroid.common.SelendroidCapabilities;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.util.List;
import java.util.Set;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        WebDriver driver = new WebDriver() {
            @Override
            public void get(String s) {

            }

            @Override
            public String getCurrentUrl() {
                return null;
            }

            @Override
            public String getTitle() {
                return null;
            }

            @Override
            public List<WebElement> findElements(By by) {
                return null;
            }

            @Override
            public WebElement findElement(By by) {
                return null;
            }

            @Override
            public String getPageSource() {
                return null;
            }

            @Override
            public void close() {

            }

            @Override
            public void quit() {

            }

            @Override
            public Set<String> getWindowHandles() {
                return null;
            }

            @Override
            public String getWindowHandle() {
                return null;
            }

            @Override
            public TargetLocator switchTo() {
                return null;
            }

            @Override
            public Navigation navigate() {
                return null;
            }

            @Override
            public Options manage() {
                return null;
            }
        };
        driver.get("https://finance.yahoo.com/quote/TSLA/history?p=TSLA");
        String s = driver.findElement(By.id("search-button")).getText();
        Log.d("Test: ", s);

    }
}


但这是我得到的错误:

java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String org.openqa.selenium.WebElement.getText()' on a null object reference
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339)


我最终想使用Selendroid登录到网站并单击,但是首先我必须使它工作。请帮我。

最佳答案

WebDriver的创建应如下

SelendroidCapabilities capa = new SelendroidCapabilities("io.selendroid.testapp:0.17.0");

WebDriver driver = new SelendroidDriver(capa);


您正在为WebDriver创建一个匿名类,该类的方法实现仅返回null值,这就是为什么要获取NPE的原因。

关于java - 如何在Android Studio中使用Selendroid,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49079711/

10-10 09:05