![](/img/trans.png)
[英]org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:7055 [/127.0.0.1] failed: Connection refused: connect
[英]Appium: Connect to 127.0.0.1:4723 [/127.0.0.1] failed: Connection refused: connect
我正在嘗試編寫我的第一個Java Appium測試。
每次我運行代碼時,都會出現以下錯誤:
org.openqa.selenium.WebDriverException: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:4723 [/127.0.0.1] failed: Connection refused: connect
....
at MyFirstTest.setupTest(MyFirstTest.java:52)
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:4723 [/127.0.0.1] failed: Connection refused: connect
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
這是我的代碼:
public class MyFirstTest
{
public AppiumDriver<MobileElement> driver;
public WebDriverWait wait;
String usersEmail = "xxxx@gmail.com";
String userPassword = "aaaaaa";
public void login() throws InterruptedException
{
WebElement email = driver.findElement(By.xpath("//android.widget.EditText[contains(@text,'Enter Email')]"));
email.sendKeys(usersEmail);
Sleeper.SYSTEM_SLEEPER.sleep(new Duration(1000, TimeUnit.MILLISECONDS));
driver.findElement(By.xpath("//android.widget.RelativeLayout[contains(@resource-id,'edtPassword')]//android.widget.EditText[contains(@resource-id,'edtText')]")).sendKeys(userPassword);
driver.findElement(By.xpath("//android.widget.Button[contains(@resource-id,'btnLogin')]")).click();
}
@Before
public void setupTest() throws Exception
{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platormName", "Android");
capabilities.setCapability("deviceName", "Redmi");
capabilities.setCapability("appPackage","com.ls.stockpair");
capabilities.setCapability("appActivity","com.ls.stockpair.activity.SplashActivity");
driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
Thread.sleep(8000);
}
@Test
public void go() throws InterruptedException
{
WebElement email = driver.findElement(By.xpath("//android.widget.EditText[contains(@text,'Enter Email')]"));
email.sendKeys(usersEmail);
Sleeper.SYSTEM_SLEEPER.sleep(new Duration(1000, TimeUnit.MILLISECONDS));
driver.findElement(By.xpath("//android.widget.RelativeLayout[contains(@resource-id,'edtPassword')]//android.widget.EditText[contains(@resource-id,'edtText')]")).sendKeys(userPassword);
driver.findElement(By.xpath("//android.widget.Button[contains(@resource-id,'btnLogin')]")).click();
Sleeper.SYSTEM_SLEEPER.sleep(new Duration(2000, TimeUnit.MILLISECONDS));
}
}
目前,我在運行代碼之前手動啟動Appium。 還嘗試從代碼啟動Appium-這沒有幫助。
該代碼在我開始編寫此代碼的第一天就起作用了,但是以某種方式(我真的不知道為什么)停止了工作。
我在網路上看到許多關於這個問題有不同答案的問題,但到目前為止,沒有人幫助過我。
我正在使用通過USB連接到Windows計算機的真實Android設備。
以下是最佳解決方案,您無需每次都手動啟動appium。
public static AndroidDriver<MobileElement> driver=null;
public static AppiumDriverLocalService service=null;
service = AppiumDriverLocalService.buildDefaultService();
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platormName", "Android");
capabilities.setCapability("deviceName", "Redmi");
capabilities.setCapability("appPackage","com.ls.stockpair");
capabilities.setCapability("appActivity","com.ls.stockpair.activity.SplashActivity");
service.start();
driver = new AndroidDriver<MobileElement>(service, capabilities);
注意:如果您使用的是appium版本1.5.3+,則需要在環境變量中設置APPIUM_BINARY_PATH。
例如APPIUM_BINARY_PATH = C:\\ Users \\ YourUserName \\ AppData \\ Roaming \\ npm \\ node_modules \\ appium \\ build \\ lib \\ main.js
有關如何設置APPIUM_BINARY_PATH的更多詳細信息,請參見以下屏幕截圖:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.