问答 求助 pycharm 运行代码只显示 Process finished with exit code 0

haiy · 2021年09月15日 · 最后由 Time 回复于 2021年09月16日 · 3194 次阅读

执行结果显示:Process finished with exit code 0

现象:
(1)运行后,appium server 未看到有运行的日志
(2)打断点走到 def setup(self):后就结束了
(3)但在终端用 py.test 运行这个文件对应真机能正常启动,appium server 也能看到运行日志
(4)写了一个简单的 print("helloword") 能正常打印出来
试了下百度上的修改解释器等等都无效,前来求助各位大神

代码如下:

from appium import webdriver
from selenium.webdriver.support.wait import WebDriverWait

class TestDemo:
    def setup(self):
        desired_cap = {
        "platformName" : "android",
        "deviceName" : "xiaomi",
        "appPackage" : "com.xueqiu.android",
        "appActivity" : "view.WelcomeActivityAlias",
        "autoGrantPermissions" : "true"}


        self.driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_cap)
        self.driver.implicitly_wait(20)

        def loaded(driver):
           if len(self.driver.find_elements_by_id("image_cancel")) >=1:
               self.driver.find_element_by_id("image_cancel").click()
               return True
           else:
               return False
        try:
           WebDriverWait(self.driver,15).until(loaded)
        except:
           print("no update")


    def test_xpath(self):
        self.driver.find_element_by_xpath("//*[@text='同意' and contains(@resource-id,'com.xueqiu.android:id/tv_agree')]").click()

    def demo(self):
        el1 = self.driver.find_element_by_id("com.xueqiu.android:id/home_search")
        el1.click()
        el2 = self.driver.find_element_by_id("com.xueqiu.android:id/search_input_text")
        el2.send_keys("aaa")

    def teardown(self):
        self.driver.quit()
共收到 3 条回复 时间 点赞

你的代码最好格式化一下,这样看得太累了。
说下我的推测吧,你这是一个测试类,用 py.test 会默认收集 test 开头的方法作为测试方法,所以会按照 pytest 正常执行测试;
而你如果直接用 Python 命令执行这个文件,因为没有 main 方法,是不会执行到这个测试方法里面的。

帮你加了下代码块排版,终于看到缩进了。。。

你用 pycharm 具体是怎么执行的,也发一下具体步骤?如楼上所说,你这个文件里没有可直接执行的方法,都包在 class 里面。如果直接用 python xxx.py 这样的方式调用,实际里面没有任何一行是可以直接运行的,所以也是直接 Process finished with exit code 0

from appium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
import pytest

desired_cap = {
    "platformName": "android",
    "deviceName": "xiaomi",
    "appPackage": "com.xueqiu.android",
    "appActivity": "view.WelcomeActivityAlias",
    "autoGrantPermissions": "true"}


class TestDemo:
    def setup(self):
        print("hello world")
        self.driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_cap)
        self.driver.implicitly_wait(20)

    def test_xpath(self):
        self.driver.find_element_by_xpath(
            "//*[@text='同意' and contains(@resource-id,'com.xueqiu.android:id/tv_agree')]").click()

    def test_demo(self):
        el1 = self.driver.find_element_by_id("com.xueqiu.android:id/home_search")
        el1.click()
        el2 = self.driver.find_element_by_id("com.xueqiu.android:id/search_input_text")
        el2.send_keys("aaa")

    def teardown(self):
        self.driver.quit()


if __name__ == '__main__':
    pytest.main(['-s'])

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册