【问题标题】:Is there a better solution than Selenium.title?有比 Selenium.title 更好的解决方案吗?
【发布时间】:2019-07-24 15:32:00
【问题描述】:

我正在尝试对特定网页的标题设置 If/Else 条件。

如果标题不是“您已被阻止”,我的脚本将继续。
我在具有不同环境的python中遇到了硒问题,在第一个(OSX)中一切正常。 我可以抓住标题检查它是否包含特定的字符串并继续我的脚本。 在 Debian 和无头模式下,我无法访问网页的标题。

driver.get(url)
print(driver.title)
if driver.title != 'You have been blocked':
   print('Ok have fun')
else:
   print('blocked')

.title 这个函数好像很不稳定,有没有更好的方法来实现呢? 谢谢

【问题讨论】:

  • 试试//html/head/title xpath 或find_element_by_tag_name('title').text
  • 谢谢,我已经尝试过这个了:/ wait = WebDriverWait(driver, 5) wait.until(EC.presence_of_element_located((By.TAG_NAME, "title"))) Xpath 一样...
  • 您是否尝试过使用 driver.pagesource 包含文本 - '您已被阻止'?
  • 这里有一个预期的条件:wait.until(ExpectedConditions.titleContains('You have been blocked'));

标签: python selenium firefox debian geckodriver


【解决方案1】:

我找到了使用 .title 的正确方法。 现在我的脚本等待网页的标题,并在加载时解析它。


wait = WebDriverWait(driver, 15)
wait.until(EC.presence_of_element_located((By.TAG_NAME,"title")))
if (driver.title != 'You have been blocked'):
    print('Ok Have Fun')
else:
    print('Blocked')

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-24
    • 2013-10-22
    • 2010-09-29
    • 2016-03-27
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多