我正在用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(不知道为什么),所以我只是再次定位了元素并再次输入了密码,但是问题仍然出现,我即使是用力也不要移动到下一页。
希望任何人对此都有解决方案。