更新到ChromeDriver 78.0.3904.70后出现InvalidArgumentException



我的Selenium脚本直到今天都运行良好,最后一次使用是几天前。在尝试运行脚本时,我不得不将ChromDriver更新到78.0.3904.70,因为这个版本不兼容。我想是因为我的Chrome更新了(?(。

在我替换chromedriver.exe之后,我尝试重新运行我的脚本。令人惊讶的是,InvalidArgumentException出现了。我该怎么解决这个问题?

代码:

upload = browser.find_element_by_xpath("//html[@class=' no-touch']//body//div[@id='page-wrapper']//div[@class='l-page']//section//form[@id='syi-form']//div[@id='photo-upload']//div[@class='box-content']//div[@class='upload-wrapper']//div[@id='uploaders']//div[@id='uploader-container-0']//div[@id]//input[@id]")
print(upload) #Test if item is found
upload.click()

错误:

<selenium.webdriver.remote.webelement.WebElement (session="a6af1cef2fb4a6fc81afeb10b9f9ad38", element="9bfb730f-984c-48d0-b5eb-077489f3a617")>
Traceback (most recent call last):
File "F:StudieSeleniummarktplaats.py", line 72, in <module>
upload.click()
File "C:UsersRemcoAppDataLocalProgramsPythonPython37-32libsite-packagesseleniumwebdriverremotewebelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "C:UsersRemcoAppDataLocalProgramsPythonPython37-32libsite-packagesseleniumwebdriverremotewebelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "C:UsersRemcoAppDataLocalProgramsPythonPython37-32libsite-packagesseleniumwebdriverremotewebdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:UsersRemcoAppDataLocalProgramsPythonPython37-32libsite-packagesseleniumwebdriverremoteerrorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument
(Session info: chrome=78.0.3904.87)

要素:

<div id="uploaders" class="uploaders" data-image-urls="" data-image-ids=""><div id="uploader-container-0" class="uploader-container small empty uploader-container--gray" data-uploader-index="0" style="position: relative;">
<div id="file-picker-0" class="uploader-box small" style="z-index: 1;">
<div class="thumb">
<div class="uploader-overlay">
<span class="photo-action edit-action" title="Foto aanpassen">
<span class="mp-Icon-circle"><span class="mp-Icon mp-svg-edit photo-action-icon"></span></span>
</span>
<span class="remove photo-action" title="Foto verwijderen">
<span class="mp-Icon-circle"><span class="mp-Icon mp-svg-delete photo-action-icon"></span></span>
</span>
</div>
</div>
<div class="content">
<div class="mp-svg-plus-circled-grey mp-Icon mp-Icon--xl"></div>
</div>
</div>
<input type="hidden" name="images.urls" value="">
<input type="hidden" name="images.ids" value="">
<div id="html5_1dp0s4cfd1ro81fcdg1g1hi05p4_container" class="moxie-shim moxie-shim-html5" style="position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; overflow: hidden; z-index: 0;"><input id="html5_1dp0s4cfd1ro81fcdg1g1hi05p4" type="file" style="font-size: 999px; opacity: 0; position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;" multiple="" accept=".jpg,.jpeg,.png" tabindex="-1"></div></div><div class="uploader-container uploader-container--gray uploader-container--disabled"><div class="uploader-box"></div></div><div class="uploader-container uploader-container--gray uploader-container--disabled"><div class="uploader-box"></div></div><div class="uploader-container uploader-container--gray uploader-container--disabled"><div class="uploader-box"></div></div><div class="uploader-container uploader-container--gray uploader-container--disabled"><div class="uploader-box"></div></div></div>

此处末尾的位:"//div[@id]//input[@id]"看起来无效,新版本的Chromedriver可能比过去更严格一些。删除或重写此部分,看看它是否有效。

我们也遇到了这个问题。Chrome似乎已经更新接受了这个标准,即测试运行者不支持打开本机窗口。

不要单击输入,而是尝试使用.sendKeys((将文本直接添加到输入中。

相关内容

最新更新