Python Selenium:在无头模式下,为什么URL和页面源没有更改

时间:2019-12-24 22:48:52

标签: python selenium selenium-webdriver selenium-chromedriver

我正在用python和selenium编写一些剪贴脚本。在chrome和firefox中,它在非无头模式下都可以很好地工作。 现在,切换到无头模式时,会出现奇怪的事情。我的代码首先登录,然后转到我要剪贴的内容的链接。

在无头模式下,登录后的网址不会按我的要求更改。 HTML源未更改为我所需的url之一,从而导致找不到元素。 在我的Windows计算机上(赢8)。此行为发生在无头的chrome中,而不是在无头的Firefox中。现在,将我的代码部署到ubuntu服务器中(我只有终端ssh,因此,我必须使用无头模式)。它们都不起作用。我尝试制作找到的每个解决方案,但没有任何效果。

我代码的相关部分(假设我们在类方法内部):

self.driver.get(self.link)
#Some code regards signing in,username,password,..etc and those work fine
if self.login==True:
    self.driver.get(self.link)
    #when the above didn't work, I tried executing javascript code to force it to move to the new url
    #but no success
    #self.driver.execute_script("document.location.assign('https:mylink.com/...')" )

    #Finding elements by xsspath which is giving me timeout exception
    logging.debug("Clicking dropdowns")
            drops =  WebDriverWait(self.driver, 60).until(         
    EC.presence_of_all_elements_located((By.XPATH,"//i[contains(@class,'a-icon a-icon-section-expand')]" )) )
            for drop in drops:
                drop.click()
                logging.debug("Dropdown clicked")

我试图等待URL更改,但是没有成功。我追溯了问题,发现登录后输入的URL只是另一个要再次输入密码的URL(不知道为什么),所以我只是再次定位了元素并再次输入了密码,但是问题仍然出现,我即使是用力也不要移动到下一页。

希望任何人对此都有解决方案。

0 个答案:

没有答案