【问题标题】:Not understanding how to use selenium for truecaller不了解如何将 selenium 用于 truecaller
【发布时间】:2016-03-13 10:13:26
【问题描述】:

我写了一个python代码来自动登录到truecaller,搜索一个号码然后抓取结果。我成功登录然后搜索号码,但我真的不能理解流程程序。 这是代码

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# Initializing firefox browser
browser = webdriver.Firefox()
# Initializing login to google
browser.get('https://www.truecaller.com/sign-in/google')
browser.find_element_by_id('Email').send_keys('email')
browser.find_element_by_id('Passwd').send_keys('password');
browser.find_element_by_id('signIn').click();
# nice 1 gets printed immediately
print "nice1"
wait = WebDriverWait(browser,20)
element = wait.until(EC.element_to_be_clickable((By.ID,'submit_approve_access')))
# by clicking on element we are clicking on the "allow " button of the google authorization page
element.click();
# nice 2 takes a little while to get printed
print "nice2"
try:
    element = WebDriverWait(browser, 0.1).until(
        EC.presence_of_element_located((By.CLASS, "detailView__nameText")))
except:
    browser.get("https://www.truecaller.com/in/9882541575")

现在,由于单击登录按钮后,页面重定向,所以我编写了等待块以等待新页面出现,以便单击那里的“允许”按钮。 一切正常,但我有一个简单的疑问。单击登录按钮时,“nice 1”会立即打印,但是当单击 submit_approve_access 或允许按钮时,“nice 2”需要一点时间才能打印出来与之前单击登录按钮并立即打印“nice 1”的情况不同,立即打印。因为下面的 try/except 块浪费了。请帮助我理解程序的流程。谢谢阅读。

【问题讨论】:

  • 请您编辑此内容或重新关注您的问题,以便我们清楚您的问题是什么?你说你写了这段代码,但似乎认为我们会比你更了解它!
  • 抱歉先生有问题。我打印了两个名为“nice 1”和“nice 2”的字符串,其中前一个几乎立即打印,但第二个需要一些时间。我想要这样做的原因。这是因为与第二页相比,第一页加载得非常快,因此两个字符串的打印有所不同。
  • 嘿 Abhishek,我正在尝试做类似的事情。你能帮我解决这个问题吗?
  • @Irshad 你遇到什么问题?
  • 上述代码中给出的 url 给出了 404 错误。这段代码现在可能不起作用..

标签: python selenium


【解决方案1】:

我认为“nice 1”不会立即打印出来。您会看到它立即打印,因为页面加载速度非常快。但是,打印“nice 2”的下一页非常慢。

WebDriver 在打印“nice 1”和“nice 2”之前自动等待页面加载。据我所知,当我们在超链接或提交表单的按钮上使用 driver.get() 或 driver.click() 时,Selenium WebDriver 会自动等待页面加载。对此的超时设置称为“pageLoadTimeout”。

Selenium API查看课程。

【讨论】:

  • 感谢您的信息。我现在明白原因了。要查看 pageLoadTimeout 类。再次感谢您提供宝贵的时间。
猜你喜欢
  • 1970-01-01
  • 2021-04-30
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多