我尝试打开浏览器并使用python脚本单击按钮我的代码:
from selenium import webdriver
browser = webdriver.Chrome('/usr/local/bin/chromedriver')
browser.get('xxx')
browser.implicitly_wait(5)
button = browser.find_element_by_css_selector('#softGateBox > div.button_softgate > a')
button.click()
该网站打开。等待5秒然后我看到错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"#softGateBox > div.button_softgate > a"}
有什么不对?我使用chrome检查按钮,然后执行右键单击并单击复制选择器。
这个页面几乎没有问题
<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:
页面上可以有其他qazxsw poi,所以你不能直接做qazxsw poi。
内部框架有<iframe>
但每次加载页面时它都会改变,所以你不能做selector('iframe')