当前位置: 首页 > 知识库问答 >
问题:

org.openqa.selenium.WebDriverException:返回的值不能转换为WebElement与Appium和iOS

宋稳
2023-03-14

我面临的问题是:返回值无法转换为WebElement。我使用BrowserStack作为云平台。

我的应用程序代码:

package root;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.ios.IOSDriver;

public class test123 {

    public static void main(String[] args) throws MalformedURLException, InterruptedException
    {
        String userName="brenda467";
        String accessKey="adfadfadfadf";
        DesiredCapabilities caps = new DesiredCapabilities();      

        caps.setCapability("browserstack.user", userName);
        caps.setCapability("browserstack.key", accessKey);


        caps.setCapability("platform","iOS");             
        //caps.setCapability("platformName","iOS");           

        caps.setCapability("deviceName","iPhone 7");       
        caps.setCapability("os_version","10.3");    
        caps.setCapability("app","bs://asfasdfasfasdfasfa");                    
        caps.setCapability("browserstack.debug",true);
        caps.setCapability("automationName","XCUITest");
        //caps.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "60");
        caps.setCapability("noReset", true);        


        AppiumDriver driver = new IOSDriver(new URL("http://hub.browserstack.com/wd/hub/"), caps);
        Thread.sleep(900);
        driver.findElement(By.xpath("//XCUIElementTypeOther[@name='LOG IN']")).click();

    }

}

控制台输出:

线程“main”中的异常0_191WebDriverException:返回的值无法转换为WebElement:{ELEment=4EE2A34-EE35-4F14-8EED-A33EEEEE55}构建信息:版本:“3.6.0”,修订版:“6fbf3ec767”,时间:“2017-09-27T15:28:36.4Z”系统信息:主机:“V00XYZ”,IP:“_client”,_client:“Windows 10”,_:“amd64”,_client:“10.0”,_client:“1.8”。org.openqa.selenium.remote.驱动信息:_:IOSDriver在org.openqa.selenium.remote.远程WebDriver.find元素(远程WebDriver.java:375)在io.appium.javariver.find。DefaultGenericMobileDriver.find元素(DefaultGenericMobileDriver.java:62)在io.appium.javaos.name。AppiumDriver.find元素(AppiumDriver.java: 1)在io.appium.javaos.archIOSDriver.find元素(IOSDriver.java: 1)在org.openqa.selenium.远程WebD100.00.00.100ElementByXPath(远程WebD由$ByXpath. findElement(By. java: 361)在org. openqa. selenium. Remote。在io. appium。java_client。io. appium上的DefaultGenericMobileDriver. findElement(DefaultGenericMobileDriver. java: 58)。java_client。io. appium上的AppiumDriver. findElement(AppiumDriver. java: 1)。java_client. io。IOSDriver. findElement(IOSDriver. java: 1)在root. test123. main(test123. java: 42)由:java. lang引起。类CastException:java. util。HashMap不能转换为org. openqa. selenium。org. openqa. selenium. Remote上的WebElement。远程网络驱动程序. findElement(远程网络

我的pom。xml

<dependency>
  <groupId>io.appium</groupId>
  <artifactId>java-client</artifactId>
  <version>7.0.0</version>
</dependency>

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-java</artifactId>
  <version>3.141.59</version>
</dependency>

注意:我已经尝试了许多在线解决方案。。以及下面的一个。https://discuss.appium.io/t/org-openqa-selenium-webdriverexception-returned-value-cannot-be-converted-to-webelement/18608

共有2个答案

全兴运
2023-03-14

请有以下POM

<?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/xsd/maven-4.0.0.xsd"

<groupId>Test</groupId>
<artifactId>AppiumProject</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>8</source>
                <target>8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencies>

    <dependency>
        <groupId>io.appium</groupId>
        <artifactId>java-client</artifactId>
        <version>5.0.3</version>
    </dependency>

  <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
  <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>3.3.1</version>
  </dependency>
颛孙兴旺
2023-03-14

pom。xml包含Selenium v3.141.59依赖项,如下所示:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
</dependency>

但根据日志消息:

Build info: version: '3.6.0', revision: '6fbf3ec767', time: '2017-09-27T15:28:36.4Z' System info: host: 'V00XYZ', ip: '100.00.00.100', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_191' 
Driver info: driver.version: IOSDriver 

这表明正在有效地使用Selenium v3.6.0,因此您会看到错误为:

org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement
  • 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
  • 执行您的测试
 类似资料:
  • 我使用这个MCP3561,没有外部时钟(MCLK),也没有使用中断(irq)(都是浮动的)。 数据表 我最初试图运行快速命令来获取adcdata,但它全部返回0. 然后我试图相应地设置所有配置位,并且当读取adcdata时,它仍然返回数据的所有0。但是在读取所有地址的增量中,我可以看到配置中的数据很好。 我的阅读功能: 我读到的数据是: r_buf[3]返回写入的配置0和。。。。以r_buf[28

  • 我正在等待(从USSD请求中)检索一个值,以便返回它(getUSSD):

  • 问题内容: 有人遇到过这个问题吗?这看起来像是苹果代码中的错误,如果人们同意该代码应按我认为的方式工作,我将提交雷达报告。我对颜色管理不是很熟悉,因此我在问苹果问题报告之前询问我。 这是直接来自模板项目的,唯一的非模板代码是您在下面看到的内容。请注意,红色,绿色和蓝色均显示正确的组件值,但不显示白色或黑色。 如果先更改顺序,例如黑色和白色,然后更改红色,绿色和蓝色,则问题仍然存在。 这是Swift

  • 问题内容: 我花了2天的时间找到问题的解决方案。 这是错误: 这是JSON: 用于获取字符串值的类: 这是转换为JSONArray: 我试图获取Json对象,然后将其转换为Json数组,但收到相同的错误。 问题答案: 问题是您的JSON格式不正确。我已经尝试过使用示例JSON,并找到了解决方案。现在,内置的JSONObject和JSONArray无法用于获取此类JSON响应。 您需要通过将其添加到

  • 我有一个JSON文件,其中有2个JSON-Arrays:一个数组用于路由,一个数组用于视图。 一条路线应该由用户导航到的几个景点组成。不幸的是,我得到了一个错误: JSONException:java.lang.String类型的值不能转换为JSONObject 下面是我的变量和解析JSON文件的代码: 但错误发生在这里: 04-22 14:01:05.043:E/JSON解析器(5868):解析