2017-07-27 216 views
0

我正在使用python 2.7。我已经看过thesequestions寻求帮助打开新标签中的链接,而且这似乎是最初工作。但是,我尝试关闭标签后遇到问题。这里是我的代码:selenium/python:在关闭标签页后,试图打开新标签页打开之前关闭的标签页

actions.key_down(Keys.COMMAND).click(people[x]).key_up(Keys.COMMAND).perform() 
driver.switch_to.window(driver.window_handles[-1]) # now at user page 
# interact with user page 
driver.close() 
driver.switch_to.window(driver.window_handles[0]) 

这是在for循环内通过人阵,那里的人们是对应于用户的下列独立Twitter账户的网络元素的列表中的每个元素去。第一次运行时,它会在新标签中正确点击第一个人的个人资料,切换到已创建的标签,与其交互,关闭它,然后重新调整原始标签(包含人员列表)。但是,在第二次迭代中,当它“点击”第二个人时,它实际上为第一个人和第二个人打开了一个标签,这是不正确的。我相信只应该点击一件东西,现在是第二个人的个人资料,因为我只有一个点击动作,它在people[x]上。

可能会出现什么问题?

回答

0

尝试重复这一部分:

driver.switch_to.window(driver.window_handles[-1]) 

所以你的第二个用户如:

driver.switch_to.window(driver.window_handles[-2]) 

您将需要声明全局变量,在for循环结束更改值。

希望它有帮助。

+0

尽管这在技术上有效,现在我正在与正确的页面进行交互,但它仍未解决在每次单击时打开多个选项卡的问题。我真的很想找到一种方法,只打开与我想单击的用户相对应的选项卡,否则我会留下许多打开的选项卡,即使我不使用它们。鉴于我将接近100次这样做,我不确定Chrome是否可以一次处理多个打开的选项卡,并且我希望避免每次都关闭n-1个选项卡,因为我相信这样做效率很低。 –