我正在制作一个简单的机器人来申请LinkedIn上的作业,很容易应用。通常,单击“应用程序”后,填写基本信息,然后显示“下一步”按钮,直到您有了评审按钮和提交应用程序按钮。我能够使用with循环单击next,并使用此代码。
button = driver.find_element_by_css_selector(".artdeco-button--primary") while button: button.click() time.sleep(1.25)
但是当“审查”按钮出现时,我会得到这个错误
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document (Session info: chrome=102.0.5005.115)
我尝试过许多不同的方法,XPath、WebdriverWait和其他方法,但是没有什么方法可以用下面的元素HTML单击“审查”按钮
<button aria-label="Review your application" id="ember562" class="artdeco-button artdeco-button--2 artdeco-button--primary ember-view" type="button"> <span class="artdeco-button__text"></span> </button>
我能得到一些帮助,弄清楚如何选择审查按钮吗?
发布于 2022-06-21 10:05:46
DOM问题:
这可能与没有附加到DOM的元素有关。有关此错误,请参见硒文档。
用于模拟web应用程序中的选项卡UI的一种常见技术是为每个选项卡准备DIVs,但每次只附加一个,将其余的存储在变量中。在这种情况下,您的代码完全有可能引用不再附加到DOM的元素(也就是说,它有一个祖先是document.documentElement)。如果在这种情况下,WebDriver抛出一个陈旧的元素异常,即使元素仍然存在,引用也会丢失。您应该放弃所持有的当前引用并替换它,可能会在元素附加到DOM之后再次定位它。
对于您的特定示例,在while循环中添加按钮变量。这将使按钮变量在每次单击时被重新引用,这将使其成为当前DOM的一部分。
https://stackoverflow.com/questions/72705151
复制相似问题