单击链接和更新框架后,Selenium找不到任何内容

时间:2016-09-29 06:19:05

标签: ruby selenium

我正在尝试制作一个可以大量应用于LinkedIn上的工作的脚本。它能够成功登录并搜索作业,收集包含特殊“linkedIn-apply”图标的元素,这就是问题的开始。一旦点击其中一个,它就会成功加载作业发布的页面,但之后它似乎找不到任何东西。

要添加更多信息,点击作业发布时,LinkedIn会自动在新标签页中打开发布内容。驱动程序是否仍然在主页面上并且看不到另一个选项卡上的内容?

整个文件:

require 'selenium-webdriver'
require 'byebug'

caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"excludeSwitches" => [ "--ignore-certificate-errors" ]})
driver = Selenium::WebDriver.for :chrome, :switches => %w[--test-type]
driver.navigate.to("https://www.linkedin.com/uas/login?goback=&trk=hb_signin")
# driver.switch_to.frame(0)
driver.find_element(:name, "session_key").send_keys("someuser") 
driver.find_element(:name, "session_password").send_keys("somepassword") 
driver.find_element(:name, "signin").click()
driver.switch_to.frame(0)
sleep 2
driver.find_element(:link_text, "Jobs").click()
sleep 2
e = driver.find_elements(:class, "in-apply-icon")
if e.empty?
  driver.find_element(:class, "expand-button").click
else
  e.each do |posting|
    posting.click
    sleep 10
    driver.switch_to.frame(0)
    sleep 10
    # THIS is where it gets stuck. It cannot find the 'apply button'. I have tried
 using :id and alas, no luck. I have tried finding other things and no luck.
        driver.find_element(:class, "apply-button").click
        sleep 5
        driver.find_element(:id, "file-browse-input").send_keys(somepath)
        sleep 5
        driver.find_element(:id, "send-application-button").click
        #find and click on apply
        #upload resume
        #submit
        #hit x button/leave
        #hit back button
      end
    end

底部的代码并不完整,我知道这一点。我甚至无法点击“应用”按钮,因此此时并不重要。

1 个答案:

答案 0 :(得分:2)

确保是否有框架,您将切换到正确的框架,然后找到该元素。切换到索引为零的帧会将您带到默认帧。