为什么selenium脚本在Firefox webdriver中成功运行,而在python中不能在PhantomJS webdriver中成功运行?

2024-09-27 21:34:33 发布

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

我用python编写了一个selenium脚本,当我使用Firefoxwebdriver时,它运行得非常成功。但是,后来我尝试让它无头,所以用PhantomJSwebdriver替换了Firefox。但是,同一个脚本不能与PhantomJSwebdriver一起运行。你知道吗

它成功地登录到站点,但是在脚本中找不到大多数XPath(这些是动态内容),尽管路径确实存在

例如:

def get_logged_in_session(redirect):
    driver = webdriver.PhantomJS()
    driver.get("https://app.abcd.com/id?redirectTo=" + redirect)
    username = driver.find_element_by_xpath("//label[@for='Username']")
    password = driver.find_element_by_xpath("//label[@for='Password']")
    login_button = driver.find_element_by_xpath("//button[@id='login']")
    username.send_keys("")
    password.send_keys("")
    login_button.send_keys(Keys.RETURN)
    return driver

此函数成功运行。你知道吗

但在一个特定的账户里

root_directory += driver.find_element_by_xpath("//h1[@class='course-hero__title']").get_attribute("textContent")

names_of_directories = driver.find_elements_by_xpath("//li[@class='accordian__section']")

这两个函数成功运行并在Firefox中获取元素,但在PhantomJS中引发异常/返回空列表。你知道吗

我的问题是,我的脚本中需要做什么更改才能使用PhantomJS。你知道吗

注意PhantomJS-2.1.1已成功安装到我的计算机中。而且,我已经提供了足够的延迟,以便页面可以完全加载。所以,这不是一个拖延的问题。你知道吗


Tags: 脚本sendgetbydriverloginbuttonelement

热门问题