Python硒+ phantomjs:单击按钮

问题描述 投票:0回答:1

我发现了类似的问题,但没有当前答案或问题的解决方案。

我必须使用硒(pythom)登录网站。输入用户后,密码并按一个按钮将重定向到另一个页面(相同的URL,但已重新加载)。由于最终服务器上未安装chrome或firefox,因此必须使用phantomjs。两者都可以正常使用,但是在幻像中单击按钮存在问题。

找到所有元素并加载了文本,但这不是最终的点击。

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

capabilities = dict(DesiredCapabilities.PHANTOMJS)
capabilities["phantomjs.page.settings.resourceTimeout"] = ('20000')
capabilities["phantomjs.page.settings.userAgent"] = ('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36')

service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any']

browser = webdriver.PhantomJS(executable_path = path_browser, \
                                desired_capabilities=capabilities, \
                                service_args = service_args)

browser.set_window_size(1400,1000)

browser.get(url_login)

timeout = 10
wait = WebDriverWait(browser, timeout)

input_usuario = wait.until(EC.presence_of_element_located((By.ID,'name')))
input_pass = browser.find_element_by_id("pass")

input_usuario.send_keys(usuario)
input_pass.send_keys(password)

button_login = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="__next"]/div/div/form/div[4]/button[1]')))
button_login.click()

time.sleep(5)

# debug
print(browser.current_url)
print(browser.page_source)
browser.save_screenshot('screenshot.png')

我们添加等待而未解决问题。有任何想法吗?谢谢

python selenium-webdriver click phantomjs
1个回答
0
投票

是否可以告诉我们它是什么网站?

如果您确定xpath正确,那么我认为该网站带有标签<iframe>。因此,您应该使用browser.switch_to.frame(TheiframeId)。然后使用find_element_by_xpath()查找此按钮并单击它。

© www.soinside.com 2019 - 2024. All rights reserved.