Selenium webdriver url 由于未知原因自动更改
Selenium webdriver url changes automatically for unknown reason
描述:
我正在尝试制作一个在 indeed.com 网站上运行的招聘广告解析器(我正在使用 python + selenium + chromedriver)
我可以使用我的 facebook 凭据登录,然后我被重定向到默认站点 hu.indeed.com(因为我住在匈牙利)。
我想搜索在伦敦可用的工作,因此让 selenium 驱动程序更改到 uk.indeed.com 站点。
然后我得到 selenium 来定位并在位置输入字段和位置以及位置字段中输入我的求职条件。到此为止一切顺利。
问题:
按下搜索按钮后,我可以看到结果 window,但很短的时间后,我会自动重定向到 hu.indeed.com 站点。正如您从我下面的代码中看到的那样,我没有这样的命令,我不知道为什么以及如何发生这种情况。我的打印语句显示 driver.current_url 会在某个时刻发生变化,我不明白为什么会发生这种情况以及我该如何防止这种情况发生。
您能告诉我为什么 url 会发生变化吗?我该如何防止这种情况发生?
代码:
driver.get("https://uk.indeed.com/")
time.sleep(1)
job_type_input=driver.find_element_by_xpath('//*[@id="text-input-what"]')
search_text=f"{jobs[0]} {extra_info}"
job_type_input.send_keys(search_text)
time.sleep(1)
print(f"1 print:{driver.current_url}") #<--- 1. print
job_location_input=driver.find_element_by_xpath('//*[@id="text-input-where"]')
job_location_input.send_keys(cities[0])
search_button=driver.find_element_by_xpath('//*[@id="jobsearch"]/button')
search_button.click()
time.sleep(5)
print(f"2 print:{driver.current_url}") #<--- 2. print
print(f"3 print:{driver.current_url}") #<--- 3. print
try:
moaic_element=driver.find_element_by_id("mosaic-provider-jobcards")
html=mosaic_element.get_attribute('innerHTML')
print("success")
except:
print("error in try")
print(f"4 print:{driver.current_url}") #<--- 4. print
输出:
1 print:https://uk.indeed.com/
2 print:https://hu.indeed.com/
3 print:https://hu.indeed.com/
error in try
4 print:https://hu.indeed.com/
我是原作者post,发现我找到了解决这个问题的方法。正如 Max Daroshchanka 在他的回答中提到的那样,由于某些插件(或其他东西)重新加载,该问题被 indeed.com 分句。因此,我的解决方案是仅在经过一段时间后才使用输入字段(使用 time.sleep(2))
描述:
我正在尝试制作一个在 indeed.com 网站上运行的招聘广告解析器(我正在使用 python + selenium + chromedriver)
我可以使用我的 facebook 凭据登录,然后我被重定向到默认站点 hu.indeed.com(因为我住在匈牙利)。
我想搜索在伦敦可用的工作,因此让 selenium 驱动程序更改到 uk.indeed.com 站点。
然后我得到 selenium 来定位并在位置输入字段和位置以及位置字段中输入我的求职条件。到此为止一切顺利。
问题:
按下搜索按钮后,我可以看到结果 window,但很短的时间后,我会自动重定向到 hu.indeed.com 站点。正如您从我下面的代码中看到的那样,我没有这样的命令,我不知道为什么以及如何发生这种情况。我的打印语句显示 driver.current_url 会在某个时刻发生变化,我不明白为什么会发生这种情况以及我该如何防止这种情况发生。
您能告诉我为什么 url 会发生变化吗?我该如何防止这种情况发生?
代码:
driver.get("https://uk.indeed.com/")
time.sleep(1)
job_type_input=driver.find_element_by_xpath('//*[@id="text-input-what"]')
search_text=f"{jobs[0]} {extra_info}"
job_type_input.send_keys(search_text)
time.sleep(1)
print(f"1 print:{driver.current_url}") #<--- 1. print
job_location_input=driver.find_element_by_xpath('//*[@id="text-input-where"]')
job_location_input.send_keys(cities[0])
search_button=driver.find_element_by_xpath('//*[@id="jobsearch"]/button')
search_button.click()
time.sleep(5)
print(f"2 print:{driver.current_url}") #<--- 2. print
print(f"3 print:{driver.current_url}") #<--- 3. print
try:
moaic_element=driver.find_element_by_id("mosaic-provider-jobcards")
html=mosaic_element.get_attribute('innerHTML')
print("success")
except:
print("error in try")
print(f"4 print:{driver.current_url}") #<--- 4. print
输出:
1 print:https://uk.indeed.com/
2 print:https://hu.indeed.com/
3 print:https://hu.indeed.com/
error in try
4 print:https://hu.indeed.com/
我是原作者post,发现我找到了解决这个问题的方法。正如 Max Daroshchanka 在他的回答中提到的那样,由于某些插件(或其他东西)重新加载,该问题被 indeed.com 分句。因此,我的解决方案是仅在经过一段时间后才使用输入字段(使用 time.sleep(2))