【问题标题】:How to select random value from iOS picker wheel using Selenium如何使用 Selenium 从 iOS 选择器轮中选择随机值
【发布时间】:2016-09-04 08:15:33
【问题描述】:

我正在真正的 IOS 设备中执行我的自动化。 在其中一个方面,我必须自动化拾取轮

xpath:

//UIAApplication[1]/UIAWindow[1]/UIAPopover[1]/UIAPicker[1]/UIAPickerWheel[1]

我想从选择器中选择一个随机值。我可以通过使用 SendKeys 发送静态值来做到这一点。而不是我想选择一个随机值。

请问我该如何使用 java 来做到这一点?

【问题讨论】:

    标签: java ios selenium selenium-webdriver appium


    【解决方案1】:

    不确定是否还有人需要这个。但以防万一这可以帮助那里的人......

    这是Nexial Automation中代码的改编:

    val index = RandomUtils.nextInt(0, 7)
    // index = 3
    
    val picker = driver.findElement(By.xpath("//XCUIElementTypePickerWheel"))
    val currentPickedValue = picker.getAttribute("value")
    val pickerId = picker.id
    
    // if picker already has selection, we'll swipe to top of the dropdown first
    if (StringUtils.isNotBlank(currentPickedValue))
        driver.executeScript(
            scriptScript,
            mapOf<String, Any>("element" to pickerId, "direction" to "down", "velocity" to 250))
    
    // magic number 25 (per dropdown option)
    val scrollAmount = 25.0 / picker.size.height
    
    for (i in 0 until index)
        driver.executeScript(
            scriptSelectPickerValue,
            mapOf<String, Any>("element" to pickerId, "order" to "next", "offset" to scrollAmount))
    

    代码是用 Kotlin 编写的。如果你了解 Java/JavaScript/C#,那么上面的内容应该是可以理解的。

    这个神奇的数字是通过一些在线研究和反复试验得出的。到目前为止似乎工作正常。

    我将 index 随机化为 0 到 7 之间的整数。随意将 index 更改为其他值。

    此代码仅在 XCUITest 驱动程序上测试过。

    【讨论】:

      【解决方案2】:

      两种方法:

      1. 在使用 x-path 访问元素时随机化 UIAPickerWheel[1] 索引。

      2. 您可以将所有可能的静态值放入ArrayList 中,并使用其中的一个随机元素使用sendKeys() 以某种方式输入:

        ArrayList<String> list = new ArrayList<String>();
        list.add("value1"); 
        list.add("value2"); // so on for all your values
        Random randomizer = new Random();
        String random = list.get(randomizer.nextInt(list.size()));
        element.sendKeys(random);
        

      【讨论】:

        猜你喜欢
        • 2019-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-13
        • 2018-07-07
        相关资源
        最近更新 更多