我尝试打开浏览器并使用python脚本单击按钮 我的代码:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"#softGateBox > div.button_softgate > a"}
网站打开。它等了5秒然后我看到了错误:
{{1}}
有什么不对?我使用chrome检查按钮,然后执行右键单击并单击复制选择器。
答案 0 :(得分:1)
此页面几乎没有问题
<iframe>
内,因此您必须先找到<iframe>
和switch_to_frame()
才能搜索元素<iframe>
位于外部<iframe>
内,因此在您开始搜索内部<iframe>
switch_to_frame()
和<iframe>
from selenium import webdriver
browser = webdriver.Chrome() #'/usr/local/bin/chromedriver')
browser.get('https://www.facebook.com/SparColruytGroup/app/300001396778554?app_data=DD722A43-C774-FC01-8823-8016BFF8F0D0')
browser.implicitly_wait(5)
iframe = browser.find_element_by_css_selector('#pagelet_app_runner iframe')
browser.switch_to_frame(iframe)
iframe = browser.find_element_by_css_selector('#qualifio_insert_place iframe')
browser.switch_to_frame(iframe)
button = browser.find_element_by_css_selector('#softGateBox > div.button_softgate > a')
browser.execute_script("arguments[0].scrollIntoView(true);", button)
button.click()
BTW:
页面上可以有其他<iframe>
,因此您无法直接执行selector('iframe')
。
内部框架有id
但每次加载页面时都会更改,因此您无法selector('iframe#some_uniqe_id')