【问题标题】:How to click on an element with Selenium without using Driver.get?如何在不使用 Driver.get 的情况下使用 Selenium 单击元素?
【发布时间】:2021-11-26 05:48:41
【问题描述】:
所以我正在尝试编写一个代码来自动加入谷歌会议。所以我需要登录我的谷歌帐户,它运行良好,但是当我进入“验证是你”时(图 1),我尝试使用 driver.get 它带我回到原来的登录页面(图 2)
如何在不使用 driver.get/ 的情况下单击“继续”按钮而不返回原始登录页面。我知道我所要做的就是单击“继续”,因为当我手动操作时,它可以完美运行。按“Tab”然后按“Enter”也可以,但您似乎也需要使用 driver.get。谢谢
【问题讨论】:
标签:
python
html
selenium
selenium-webdriver
selenium-chromedriver
【解决方案1】:
所以我认为您不了解 driver.get() 的用法。它仅用于使浏览器浏览到您可以事先指定的特定链接。您在这里要做的是手动打开 google meet 页面,然后转到您想要单击按钮的所需页面。右键单击按钮,然后单击检查。然后转到突出显示的代码并找到所需的按钮,然后右键单击复制并从列表中选择 xpath。现在来到你的代码。
添加这一行:
element=driver.find_element_by_xpath('_xpath')
element.click()
用您复制的长字符串替换_xpath(这是您要单击的按钮的xpath)。
这是单击按钮或文本框或您在 selenium 中命名的任何内容的方式。
**提防一件事。不要让你的代码立即点击。如果页面没有完全加载并且点击了,那么第一行将抛出一个element not found error。在页面加载之前设置某种延迟,或者使用 while 循环和异常处理来等待找到元素
【解决方案2】:
这个应该适合你
userName = driver.find_element_by_xpath("//button[@name='username']")
driver.execute_script("arguments[0].click();", userName)