python - 将 Winium (+ Selenium) 与 python 一起使用只允许我打开应用程序,但不会与之交互?

标签 python python-3.x selenium selenium-webdriver winium

当我尝试使用 winium 运行任何类型的代码时,它会打开应用程序,但之后不会执行任何代码。它并没有抛出错误,它只是卡在那里,不会继续。

我在 Windows 10 PC 上使用 Python 3.7。


我已经尝试了 Winium 的 github wiki 页面上列出的两个“神奇”示例,但即使这样也行不通。我能够使用 selenium 进行自动化 Web 测试,所以我认为 selenium 模块不是问题所在。我试过导入时间模块并让它在两行之间休眠 10 秒,但这对结果没有影响。


from selenium import webdriver

driver = webdriver.Remote(
    command_executor='http://localhost:9999',
    desired_capabilities={
        "debugConnectToRunningApp": 'false',
        "app": r"C:/windows/system32/calc.exe"
    })

# THIS IS WHERE IT SEEMS TO PAUSE INDEFINITELY

window = driver.find_element_by_class_name('CalcFrame')
view_menu_item = window.find_element_by_id('MenuBar').find_element_by_name('View')

view_menu_item.click()
view_menu_item.find_element_by_name('Scientific').click()

view_menu_item.click()
view_menu_item.find_element_by_name('History').click()

window.find_element_by_id('132').click()
window.find_element_by_id('93').click()
window.find_element_by_id('134').click()
window.find_element_by_id('97').click()
window.find_element_by_id('138').click()
window.find_element_by_id('121').click()

driver.close()

我希望它按下相应的按钮,但它似乎除了打开计算器应用程序外什么也没做。

最佳答案

我认为这个例子是为旧版本的计算器编写的。在 Windows 10 中,“科学”按钮位于菜单按钮下方。

Menu Button Scientific

您必须找到菜单按钮,单击它,然后在列表中查找元素“Scientific”。

此外,您的算术案例的数值不正确。选择一个 UI 检查器工具(inspect.exe、uispy 等)以确保您正确定位元素。

关于python - 将 Winium (+ Selenium) 与 python 一起使用只允许我打开应用程序,但不会与之交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57371371/

相关文章:

python - 在其他系列的两个索引之间创建一个新的 pandas 系列

python - PyGame中的弹出消息框

python - 在 PyQt5 中对齐弹出窗口小部件

python - 如何将元组列表的字符串转换为 Python 元组列表

java - 在 Gmail 中,Selenium 有时会在不同区域返回 WebDriverException

python - 如何使用 Python 在 Selenium 中为给定的 HTML 构建 xpath

python - 使用空格或标点符号作为分隔符将 unicode 字符串拆分为列表的快速方法是什么?

python - 在Python中,如何在循环中对基本类型进行操作?

python - pathlib.Path(path).mkdir(),不创建目录

java - 在 Selenium 中拖放时元素会重叠