社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python/selenium未知错误。click()

Aurum Hype • 7 年前 • 2395 次点击  

刚开始使用硒,有点小问题。当我试图使用 .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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40574
文章 [ 2 ]  |  最新文章 7 年前
QHarr
Reply   •   1 楼
QHarr    7 年前

我认为你可以做到以下几点:

那是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 相反,它已经尝试匹配两个选择器。

Julian Silvestri
Reply   •   2 楼
Julian Silvestri    7 年前

基于Qharr的回答和你的问题。也许你应该试着用硒 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) 在您将url加载为 driver.get("URL") 当然,你可以将窗口大小设置为任何适合你的大小。