(request)
| 669 | |
| 670 | @pytest.fixture |
| 671 | def clean_driver(request): |
| 672 | _supported_drivers = SupportedDrivers() |
| 673 | try: |
| 674 | driver_class = getattr(_supported_drivers, request.config.option.drivers[0].lower()) |
| 675 | except (AttributeError, TypeError): |
| 676 | raise Exception("This test requires a --driver to be specified.") |
| 677 | driver_reference = getattr(webdriver, driver_class) |
| 678 | |
| 679 | # conditionally mark tests as expected to fail based on driver |
| 680 | marker = request.node.get_closest_marker(f"xfail_{driver_class.lower()}") |
| 681 | # Also check for xfail_remote when running with --remote |
| 682 | if marker is None and request.config.getoption("remote"): |
| 683 | marker = request.node.get_closest_marker("xfail_remote") |
| 684 | if marker is not None: |
| 685 | kwargs = dict(marker.kwargs) |
| 686 | if "run" in kwargs: |
| 687 | if not kwargs["run"]: |
| 688 | pytest.skip() |
| 689 | yield |
| 690 | return |
| 691 | kwargs.pop("raises", None) |
| 692 | pytest.xfail(**kwargs) |
| 693 | |
| 694 | yield driver_reference |
| 695 | |
| 696 | if request.node.get_closest_marker("no_driver_after_test"): |
| 697 | driver_reference = None |
| 698 | |
| 699 | |
| 700 | @pytest.fixture |
no test coverage detected