Hướng dẫn timeout requests python - yêu cầu hết thời gian chờ python

Có hai vấn đề tôi thấy ở đây. Một điều trực tiếp khắc phục vấn đề của bạn và thứ hai là một chút lạm dụng khung bắt giữ giúp đơn giản hóa hơn nữa việc thực hiện của bạn.

Nội dung chính ShowShow

  • Làm thế nào để bạn sửa lỗi thời gian chờ trong Python?
  • Làm thế nào để bạn viết các ngoại lệ thời gian chờ trong Python?
  • Làm thế nào để Python xử lý thời gian chờ ngoại lệ trong selen?
  • Làm cách nào để đặt thời gian chờ trong Python?

Đầu tiên, để giải quyết trực tiếp vấn đề của bạn, dựa trên cách bạn đang tìm cách kiểm tra khẳng định của mình, những gì bạn thực sự đang muốn làm ở đây:

requests.get = get

Bạn nên sử dụng

m_get.side_effect = Timeout()
2 ở đây để giúp nâng cao ngoại lệ của bạn. Theo tài liệu:

Side_effect cho phép bạn thực hiện các tác dụng phụ, bao gồm cả việc tăng ngoại lệ khi một giả được gọi

Với ý nghĩ đó, tất cả những gì bạn thực sự cần làm là thế này:

requests.get.side_effect = get

Điều đó sẽ có được ngoại lệ của bạn để nâng cao. Tuy nhiên, rất có thể bạn có thể phải đối mặt với lỗi này:

TypeError: catching classes that do not inherit from BaseException is not allowed

Điều này có thể được giải thích tốt nhất bằng cách thực sự đọc câu trả lời tuyệt vời này về lý do tại sao điều đó đang xảy ra. Với câu trả lời đó, thực hiện đề xuất đó để thực sự chỉ chế giễu những gì bạn cần sẽ giúp giải quyết đầy đủ vấn đề của bạn. Vì vậy, cuối cùng, mã của bạn thực sự sẽ trông giống như thế này, với

m_get.side_effect = Timeout()
3 bị chế giễu thay vì mô -đun
m_get.side_effect = Timeout()
4 bị chế giễu:
class MyUnitTest(unittest.TestCase):

    @patch('my_module.requests.get')
    def test_my_test(self, m_get):
        def get(*args, **kwargs):
            raise Timeout()

        m_get.side_effect = get

        try:
            my_method()
        except MyException:
            return

Bây giờ bạn thực sự có thể đơn giản hóa điều này hơn nữa bằng cách sử dụng tốt hơn những gì không hợp nhất với

m_get.side_effect = Timeout()
5 thay vì thử/ngoại trừ. Điều này cuối cùng sẽ chỉ khẳng định rằng ngoại lệ đã được nêu ra khi phương thức được gọi. Hơn nữa, bạn không cần phải tạo một phương pháp mới sẽ tăng thời gian chờ, bạn thực sự có thể nói đơn giản rằng bạn bị chế giễu sẽ có một
m_get.side_effect = Timeout()
2 làm tăng ngoại lệ. Vì vậy, bạn có thể thay thế toàn bộ
m_get.side_effect = Timeout()
7 chỉ bằng cách này:
m_get.side_effect = Timeout()

Tuy nhiên, bạn thực sự có thể đặt trực tiếp điều này vào trình trang trí bản vá của mình, vì vậy, bây giờ mã cuối cùng của bạn sẽ trông như thế này:

m_get.side_effect = Timeout()
1

Tôi hi vọng cái này giúp được!

Tôi đang tìm cách xử lý các ngoại lệ thời gian chờ cho bot reddit của tôi sử dụng praw (python). Nó đã hết ít nhất một lần mỗi ngày và nó có một biến được mã hóa, vì vậy tôi phải cập nhật biến và sau đó chạy lại bot theo cách thủ công. Tôi đang tìm cách để tự động xử lý các ngoại lệ này. Tôi đã xem xét thử: và ngoại trừ :, nhưng tôi sợ rằng việc thêm một điểm ngắt sau thời gian.s ngủ (10) sẽ dừng vòng lặp hoàn toàn. Tôi muốn nó tiếp tục chạy vòng lặp bất kể nó có hết thời gian hay không. Có một mẫu của mã dưới đây.

Nội phân chính

  • Làm thế nào để bạn sửa lỗi thời gian chờ trong Python?
  • Làm thế nào để bạn viết các ngoại lệ thời gian chờ trong Python?
  • Làm thế nào để Python xử lý thời gian chờ ngoại lệ trong selen?
  • Làm cách nào để đặt thời gian chờ trong Python?
m_get.side_effect = Timeout()
2

Đầu tiên, để giải quyết trực tiếp vấn đề của bạn, dựa trên cách bạn đang tìm cách kiểm tra khẳng định của mình, những gì bạn thực sự đang muốn làm ở đây:

Bạn nên sử dụng 67 gold badges485 silver badges628 bronze badges

m_get.side_effect = Timeout()
2 ở đây để giúp nâng cao ngoại lệ của bạn. Theo tài liệu:Sep 16, 2016 at 13:43

Side_effect cho phép bạn thực hiện các tác dụng phụ, bao gồm cả việc tăng ngoại lệ khi một giả được gọi

m_get.side_effect = Timeout()
3

Với ý nghĩ đó, tất cả những gì bạn thực sự cần làm là thế này:Sep 16, 2016 at 14:43

Điều đó sẽ có được ngoại lệ của bạn để nâng cao. Tuy nhiên, rất có thể bạn có thể phải đối mặt với lỗi này:thiruvenkadam

Điều này có thể được giải thích tốt nhất bằng cách thực sự đọc câu trả lời tuyệt vời này về lý do tại sao điều đó đang xảy ra. Với câu trả lời đó, thực hiện đề xuất đó để thực sự chỉ chế giễu những gì bạn cần sẽ giúp giải quyết đầy đủ vấn đề của bạn. Vì vậy, cuối cùng, mã của bạn thực sự sẽ trông giống như thế này, với 3 gold badges26 silver badges26 bronze badges

m_get.side_effect = Timeout()
3 bị chế giễu thay vì mô -đun
m_get.side_effect = Timeout()
4 bị chế giễu:
class MyUnitTest(unittest.TestCase):

    @patch('my_module.requests.get')
    def test_my_test(self, m_get):
        def get(*args, **kwargs):
            raise Timeout()

        m_get.side_effect = get

        try:
            my_method()
        except MyException:
            return

Bây giờ bạn thực sự có thể đơn giản hóa điều này hơn nữa bằng cách sử dụng tốt hơn những gì không hợp nhất với

m_get.side_effect = Timeout()
5 thay vì thử/ngoại trừ. Điều này cuối cùng sẽ chỉ khẳng định rằng ngoại lệ đã được nêu ra khi phương thức được gọi. Hơn nữa, bạn không cần phải tạo một phương pháp mới sẽ tăng thời gian chờ, bạn thực sự có thể nói đơn giản rằng bạn bị chế giễu sẽ có một
m_get.side_effect = Timeout()
2 làm tăng ngoại lệ. Vì vậy, bạn có thể thay thế toàn bộ
m_get.side_effect = Timeout()
7 chỉ bằng cách này:
m_get.side_effect = Timeout()

Tuy nhiên, bạn thực sự có thể đặt trực tiếp điều này vào trình trang trí bản vá của mình, vì vậy, bây giờ mã cuối cùng của bạn sẽ trông như thế này:

m_get.side_effect = Timeout()
6

Tôi hi vọng cái này giúp được!

requests.get.side_effect = get
0

Tôi đang tìm cách xử lý các ngoại lệ thời gian chờ cho bot reddit của tôi sử dụng praw (python). Nó đã hết ít nhất một lần mỗi ngày và nó có một biến được mã hóa, vì vậy tôi phải cập nhật biến và sau đó chạy lại bot theo cách thủ công. Tôi đang tìm cách để tự động xử lý các ngoại lệ này. Tôi đã xem xét thử: và ngoại trừ :, nhưng tôi sợ rằng việc thêm một điểm ngắt sau thời gian.s ngủ (10) sẽ dừng vòng lặp hoàn toàn. Tôi muốn nó tiếp tục chạy vòng lặp bất kể nó có hết thời gian hay không. Có một mẫu của mã dưới đây.

requests.get.side_effect = get
1

Nội phân chínhSep 16, 2016 at 13:48

Làm thế nào để bạn sửa lỗi thời gian chờ trong Python?Alu

Chepner5 silver badges16 bronze badges

8

461K67 Huy hiệu vàng485 Huy hiệu bạc628 Huy hiệu Đồng67 gold badges485 silver badges628 bronze badges30 code examples of requests.exceptions.Timeout(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module requests.exceptions, or try the search function

Được hỏi ngày 16 tháng 9 năm 2016 lúc 13:43Sep 16, 2016 at 13:43

Di chuyển giấc ngủ để cuối cùng sẽ giải quyết vấn đề của bạn, tôi đoán. Cuối cùng, Block sẽ chạy bất kể có ngoại lệ có xảy ra hay không.

requests.get.side_effect = get
2

Đã trả lời ngày 16 tháng 9 năm 2016 lúc 14:43Sep 16, 2016 at 14:43

requests.get.side_effect = get
3

Ví dụ #3

requests.get.side_effect = get
4

Ví dụ #4

requests.get.side_effect = get
5

Ví dụ #5

requests.get.side_effect = get
6

Ví dụ #6

requests.get.side_effect = get
7

Ví dụ #7

requests.get.side_effect = get
8

Ví dụ #8

requests.get.side_effect = get
9

Ví dụ #9

TypeError: catching classes that do not inherit from BaseException is not allowed
0

Ví dụ #10

TypeError: catching classes that do not inherit from BaseException is not allowed
1

Ví dụ #11

TypeError: catching classes that do not inherit from BaseException is not allowed
2

Ví dụ #12

TypeError: catching classes that do not inherit from BaseException is not allowed
3

Ví dụ #13

TypeError: catching classes that do not inherit from BaseException is not allowed
4

Ví dụ #14

TypeError: catching classes that do not inherit from BaseException is not allowed
5

Ví dụ #15

TypeError: catching classes that do not inherit from BaseException is not allowed
6

Ví dụ #16

TypeError: catching classes that do not inherit from BaseException is not allowed
7

Ví dụ #17

TypeError: catching classes that do not inherit from BaseException is not allowed
8

Ví dụ #18

TypeError: catching classes that do not inherit from BaseException is not allowed
9

Ví dụ #19

class MyUnitTest(unittest.TestCase):

    @patch('my_module.requests.get')
    def test_my_test(self, m_get):
        def get(*args, **kwargs):
            raise Timeout()

        m_get.side_effect = get

        try:
            my_method()
        except MyException:
            return
0

Ví dụ #20

class MyUnitTest(unittest.TestCase):

    @patch('my_module.requests.get')
    def test_my_test(self, m_get):
        def get(*args, **kwargs):
            raise Timeout()

        m_get.side_effect = get

        try:
            my_method()
        except MyException:
            return
1

Ví dụ #21

class MyUnitTest(unittest.TestCase):

    @patch('my_module.requests.get')
    def test_my_test(self, m_get):
        def get(*args, **kwargs):
            raise Timeout()

        m_get.side_effect = get

        try:
            my_method()
        except MyException:
            return
2

Ví dụ #22

class MyUnitTest(unittest.TestCase):

    @patch('my_module.requests.get')
    def test_my_test(self, m_get):
        def get(*args, **kwargs):
            raise Timeout()

        m_get.side_effect = get

        try:
            my_method()
        except MyException:
            return
3

Ví dụ #23

class MyUnitTest(unittest.TestCase):

    @patch('my_module.requests.get')
    def test_my_test(self, m_get):
        def get(*args, **kwargs):
            raise Timeout()

        m_get.side_effect = get

        try:
            my_method()
        except MyException:
            return
4

Ví dụ #24

class MyUnitTest(unittest.TestCase):

    @patch('my_module.requests.get')
    def test_my_test(self, m_get):
        def get(*args, **kwargs):
            raise Timeout()

        m_get.side_effect = get

        try:
            my_method()
        except MyException:
            return
5

Ví dụ #25

class MyUnitTest(unittest.TestCase):

    @patch('my_module.requests.get')
    def test_my_test(self, m_get):
        def get(*args, **kwargs):
            raise Timeout()

        m_get.side_effect = get

        try:
            my_method()
        except MyException:
            return
6

Ví dụ #26

class MyUnitTest(unittest.TestCase):

    @patch('my_module.requests.get')
    def test_my_test(self, m_get):
        def get(*args, **kwargs):
            raise Timeout()

        m_get.side_effect = get

        try:
            my_method()
        except MyException:
            return
7

Ví dụ #27

class MyUnitTest(unittest.TestCase):

    @patch('my_module.requests.get')
    def test_my_test(self, m_get):
        def get(*args, **kwargs):
            raise Timeout()

        m_get.side_effect = get

        try:
            my_method()
        except MyException:
            return
8

Ví dụ #28

class MyUnitTest(unittest.TestCase):

    @patch('my_module.requests.get')
    def test_my_test(self, m_get):
        def get(*args, **kwargs):
            raise Timeout()

        m_get.side_effect = get

        try:
            my_method()
        except MyException:
            return
9

Ví dụ #29

m_get.side_effect = Timeout()
0

Ví dụ #30

m_get.side_effect = Timeout()
1

Làm thế nào để bạn sửa lỗi thời gian chờ trong Python?

Trong Python, sử dụng stdin.readline () và stdout.write () thay vì đầu vào và in. Đảm bảo rằng giá trị đầu vào cho các trường hợp thử nghiệm được truyền ở định dạng dự kiến.use the stdin.readline() and stdout.write() instead of input and print. Ensure that the input value to test cases is passed in the expected format.use the stdin. readline() and stdout. write() instead of input and print. Ensure that the input value to test cases is passed in the expected format.

Làm thế nào để bạn viết các ngoại lệ thời gian chờ trong Python?

Trong trường hợp không còn yêu cầu, hãy tăng thời gian chờ ngoại lệ. Đầu ra mẫu: Thời gian chờ = 0,001 HTTPSConnectionPool (host = 'github.com', port = 443): MAX RETRES vượt quá URL: / (gây ra bởi ConnectItesouterRor (raise Timeout exception. Sample Output: timeout = 0.001 HTTPSConnectionPool(host='github.com', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(raise Timeout exception. Sample Output: timeout = 0.001 HTTPSConnectionPool(host='github.com', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(

Làm thế nào để Python xử lý thời gian chờ ngoại lệ trong selen?

Bạn có thể thử sử dụng một số thuộc tính khác để xác định vị trí phần tử như bộ chọn CSS hoặc XPath. Sử dụng sự chờ đợi rõ ràng. Điều này sẽ đảm bảo tất cả thời gian chờ xảy ra sau thời gian nhất định. Điều này nên được tuyên bố khi bắt đầu chương trình trước khi thực hiện bất kỳ nhiệm vụ nào.Use explicit waits. This will ensure all timeouts happen after the given time. This should be declared at the start of the program before carrying out any tasks.Use explicit waits. This will ensure all timeouts happen after the given time. This should be declared at the start of the program before carrying out any tasks.

Làm cách nào để đặt thời gian chờ trong Python?

Để đặt thời gian chờ trong các yêu cầu Python, bạn có thể vượt qua tham số "Hết thời gian" để nhận, đăng, đặt, đầu và xóa các phương thức. Tham số "Thời gian chờ" cho phép bạn chọn thời gian tối đa (số giây) để hoàn thành yêu cầu. Theo mặc định, các yêu cầu không có thời gian chờ trừ khi bạn chỉ định rõ ràng một.pass the "timeout" parameter for GET, POST, PUT, HEAD, and DELETE methods. The "timeout" parameter allows you to select the maximum time (number of seconds) for the request to complete. By default, requests do not have a timeout unless you explicitly specify one.pass the "timeout" parameter for GET, POST, PUT, HEAD, and DELETE methods. The "timeout" parameter allows you to select the maximum time (number of seconds) for the request to complete. By default, requests do not have a timeout unless you explicitly specify one.