Python/Selenium的未知错误。click()

2024-06-28 14:43:38 发布

您现在位置:Python中文网/ 问答频道 /正文

刚开始使用硒,有点小问题。当我尝试对元素使用.click()时,会出现这个错误。代码在上面。这是我的网站。https://www.minuteinbox.com/谢谢你的帮助。如果你需要更多的信息,尽管问。你知道吗

def get_email():
driver = webdriver.Edge('C:/Users/Aurum/Downloads/MicrosoftWebDriver')
driver.get("https://www.minuteinbox.com/")
assert "MinuteInbox" in driver.title
element_email = driver.find_element_by_id('email')
email = element_email.text
assert "No results found." not in driver.page_source
element_delete = driver.find_element_by_class_name('delete-tab')
assert "No results found." not in driver.page_source
element_delete.click()
driver.close()
return email

错误是:

Traceback (most recent call last): File "C:\Users\Aurum\Documents\Programing\Prog 1\random stuff\FratThing.py", 
line 69, in main() File "C:\Users\Aurum\Documents\Programing\Prog 1\random stuff\FratThing.py", 
line 64, in main email = get_email() File "C:\Users\Aurum\Documents\Programing\Prog 1\random stuff\FratThing.py", 
line 14, in get_email element_delete.click() File "C:\Python37\lib\site-packages\selenium\webdriver\remote\webelement.py", 
line 80, in click self._execute(Command.CLICK_ELEMENT) File "C:\Python37\lib\site-packages\selenium\webdriver\remote\webelement.py", 
line 633, in _execute return self._parent.execute(command, params) File "C:\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", 
line 321, in execute self.error_handler.check_response(response) File "C:\Python37\lib\site-packages\selenium\webdriver\remote\errorhandler.py", 
line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: Unknown error

编辑:所以我想窗口必须缩小才能工作。如果我把它变大,把类改成适合这个大按钮,它就不起作用了。你知道吗

Edit2:Github链接https://github.com/WilPermenter/SignUpBot


Tags: inpygetemaildriverseleniumlineelement
2条回答

基于你的回答和你的问题。也许你应该试着用硒wait.until()

from selenium import webdriver;
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("URLHERE")

wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.XPATH,"RELEVANT X PATH"))).click()

也许等待下一步按钮被点击,直到驱动程序可以找到它可能会帮助你。你知道吗

如果屏幕大小影响你。你可以尝试使用driver.set_window_size(480, 320)在你用driver.get("URL")加载你的url之后当然你可以把窗口大小设置成任何适合你的。你知道吗

我认为你可以通过以下方法达到同样的效果:

这就是css选择器

find_element_by_css_selector(".gradient .delete-tab").click()

这将匹配的元素限制为一个

在代码中:

except:
    element_delete = driver.find_element_by_css_selector('.gradient .delete-tab, .btn-delete')
    element_delete.click()

这意味着您可以将其移到try中,因为它已经尝试在两个选择器上进行匹配。你知道吗

相关问题 更多 >