Possible issue with Chromedriver 78, Selenium can not find web element of PDF opened in Chrome

后端 未结 9 1126
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-17 11:02

Until my google Chrome wasn\'t updated to version 78 my code worked fine. I also updated the chromedriver to version 78.0.3904.70. So I am not able anymore to find WebElemen

9条回答
  •  醉话见心
    2020-12-17 11:22

    I confirmed yesterday that this issue appears to manifest itself only when an element is contained in an iframe. In those cases, the iframe is located fine. However, attempting to locate a web element using the driver or web driver wait objects will result in a NoSuchElement or TimeoutException respectively.

    I provided the chromedriver team a verbose chrome driver log and they are working on it.

    UPDATE: From chromedriver issue 3223

    The logs show that the final executionContextCreated for the frame doesn't complete until after the FindElement returns null. Starting in version 77, ChromeDriver stopped waiting for all frames to load before continuing navigation. Unfortunately, that change prevented a wait for the current frame to load. 3164 will all a wait for the current frame to load; this should prevent FindElement from searching until after the frame has Stopped loading and the executionContext is created.

    Basically, this bug was introduced in v.77. Many of us just noticed this problem because we upgraded from v.76 to .v78. Word is that they are targeting a fix for .v80 (not v. 79). As a workaround, I am using Thread.sleep between the time I switch to the iframe and when I attempt to locate the component. This workaround works fine. In fact, you can verify this on your own by simply running your application in DEBUG mode. When you pause execution (by using a breakpoint), you'll notice that your original code (without the sleep) works fine.

提交回复
热议问题