最新消息:VPS服务器又从fzhost.net换回Linode了,主题仍用朋友推荐的大前端D8

【已解决】Selenium如何判断页面已经重定向到某个页面

selenium crifan 476浏览 0评论

折腾:

【记录】尝试用Python操作PhantomJS+Selenium去模拟购物操作

期间,在打开新的tab:

【已解决】Selenium如何跳转到新打开的tab页窗口

后,页面会自动重定向到另外一个页面:

https://www.microsoft.com/en-us/store/b/home?ranMID=24542&ranEAID=cFSwUBVvVPI&ranSiteID=cFSwUBVvVPI-LVqBM4holM0NI3VOyix9aQ&tduid=(4f987f889f237312088b4ea0c33b56be)(256380)(2459594)(cFSwUBVvVPI-LVqBM4holM0NI3VOyix9aQ)()

此处的页面标题是:

Microsoft Store Online – Welcome

此处需要判断,如何才能判断真的已经重定向到该页面了。

通过借鉴:

seachButtonElement = WebDriverWait(driver, 10).until(

#         EC.presence_of_element_located((By.ID, “ctl00_hdr_hss_btnSearch”)))

的代码:

找到了有个:

presence_of_element_located NAME

Selenium Tutorial: Web Scraping with Selenium and Python

5. Waits — Selenium Python Bindings 2 documentation

看到:title_contains

貌似更符合我此处的意图:

去判断页面的标题是否包含对应的文字

4. Locating Elements — Selenium Python Bindings 2 documentation

selenium title_contains

selenium.webdriver.support.expected_conditions — Selenium 3.7 documentation

看到:

new_window_is_opened

url_changes

url_contains

url_matches

抽空可以利用起来,让逻辑更严谨

selenium.webdriver.support.expected_conditions.title_contains – Nullege Python Samples

确定:title_contains后面的参数是字符串

所以去试试:

msStoreHeaderElement = WebDriverWait(driver, 20).until(

    EC.title_contains(“Microsoft Store”))

然后看看是否有效。

然后是可以的。

【总结】

最后用代码:

<code>try:
</code>

可以确保页面已经重定向到对应的ms了 -》此时标题中包含Microsoft Store。

转载请注明:在路上 » 【已解决】Selenium如何判断页面已经重定向到某个页面

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
13 queries in 0.200 seconds, using 10.22MB memory