Python 硒不是';t返回当前url
我正在设置一个python脚本,以便转到一家航运公司的网站,输入一个跟踪号,并返回发货和交货日期,而selenium当前的url方法遇到了问题。我的代码打开了初始浏览器窗口,输入了跟踪号,并转到“发货状态”页面,但在结果页面上找不到表项。起初我以为这是我查找表项的方式,但我发现结果页面url仍然与我开始时的初始url相同。我甚至添加了一个隐式等待时间,以确保页面已经加载,并且仍然得到相同的结果。下面是我的代码的样子: 我认为在结果页面上查找table元素仍然存在问题,但在我确定是否搜索了正确的url之前,我无法确定,因此我需要首先通过该步骤。任何帮助都将不胜感激 谢谢 马克斯Python 硒不是';t返回当前url,python,selenium,Python,Selenium,我正在设置一个python脚本,以便转到一家航运公司的网站,输入一个跟踪号,并返回发货和交货日期,而selenium当前的url方法遇到了问题。我的代码打开了初始浏览器窗口,输入了跟踪号,并转到“发货状态”页面,但在结果页面上找不到表项。起初我以为这是我查找表项的方式,但我发现结果页面url仍然与我开始时的初始url相同。我甚至添加了一个隐式等待时间,以确保页面已经加载,并且仍然得到相同的结果。下面是我的代码的样子: 我认为在结果页面上查找table元素仍然存在问题,但在我确定是否搜索了正确的u
该网站将打开另一个窗口。你必须切换到那个窗口。他们不止一次地使用表id标记。这将有助于:
driver = webdriver.Chrome()
driver.get('http://www.dovelogistics.com/track-shipment/')
elem = driver.find_element_by_name("txtInputNo")
elem.clear()
elem.send_keys("224893")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.switch_to.window(driver.window_handles[1])
print(driver.current_url)
elem = driver.find_elements_by_id("Table1")
print (elem)
driver.close()
你必须处理他们嵌套的表格和重复的id标签。该网站将打开另一个窗口。你必须切换到那个窗口。他们不止一次地使用表id标记。这将有助于:
driver = webdriver.Chrome()
driver.get('http://www.dovelogistics.com/track-shipment/')
elem = driver.find_element_by_name("txtInputNo")
elem.clear()
elem.send_keys("224893")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.switch_to.window(driver.window_handles[1])
print(driver.current_url)
elem = driver.find_elements_by_id("Table1")
print (elem)
driver.close()
您必须处理它们的嵌套表和重复的id标记。您应该接受Jens Dibbern解决方案,但只想指出,一旦您获得url,您还可以使用pandas拉取该表进行解析:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import pandas as pd
driver = webdriver.Chrome()
driver.get("http://www.dovelogistics.com/track-shipment/")
elem = driver.find_element_by_name("txtInputNo")
elem.clear()
elem.send_keys("224893")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.implicitly_wait(5)
driver.switch_to.window(driver.window_handles[1])
resultsPage = driver.current_url
driver.get(resultsPage)
html = driver.page_source
tables = pd.read_html(html)
table = tables[5]
driver.close()
输出:
print (table)
0 1
0 Status Updated On Note
1 12/4/2018 1:07:00 PM Shipment Status changed to: Rated
2 12/4/2018 1:07:00 PM Signed for By: Delivered at KWA 1:07:00 PM 12/...
3 12/4/2018 9:37:43 AM Email Status Notification Sent
4 12/2/2018 11:50:00 AM Shipment Status changed to: Shipment Departed
5 12/1/2018 2:12:00 PM Shipment Status changed to: Shipment Arrived
6 12/1/2018 10:39:00 AM Shipment Status changed to: Shipment Departed
7 12/1/2018 9:28:00 AM Shipment Status changed to: Shipment Arrived
8 11/30/2018 2:53:55 PM Shipment Status changed to: Shipment Departed ...
9 11/28/2018 8:42:23 PM Shipment Status changed to: On-Hand At Origin ...
10 11/28/2018 5:53:47 PM Shipment Status changed to: Dispatched for Pickup
您应该接受Jens Dibbern解决方案,但只想指出,一旦您获得url传入,您还可以使用pandas拉取该表进行解析:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import pandas as pd
driver = webdriver.Chrome()
driver.get("http://www.dovelogistics.com/track-shipment/")
elem = driver.find_element_by_name("txtInputNo")
elem.clear()
elem.send_keys("224893")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.implicitly_wait(5)
driver.switch_to.window(driver.window_handles[1])
resultsPage = driver.current_url
driver.get(resultsPage)
html = driver.page_source
tables = pd.read_html(html)
table = tables[5]
driver.close()
输出:
print (table)
0 1
0 Status Updated On Note
1 12/4/2018 1:07:00 PM Shipment Status changed to: Rated
2 12/4/2018 1:07:00 PM Signed for By: Delivered at KWA 1:07:00 PM 12/...
3 12/4/2018 9:37:43 AM Email Status Notification Sent
4 12/2/2018 11:50:00 AM Shipment Status changed to: Shipment Departed
5 12/1/2018 2:12:00 PM Shipment Status changed to: Shipment Arrived
6 12/1/2018 10:39:00 AM Shipment Status changed to: Shipment Departed
7 12/1/2018 9:28:00 AM Shipment Status changed to: Shipment Arrived
8 11/30/2018 2:53:55 PM Shipment Status changed to: Shipment Departed ...
9 11/28/2018 8:42:23 PM Shipment Status changed to: On-Hand At Origin ...
10 11/28/2018 5:53:47 PM Shipment Status changed to: Dispatched for Pickup
您是否可以删除额外的代码,并留下一个示例来准确显示您看到的内容。你的问题也很不清楚。你也有换行符,这会使代码无法命名,因为你可以删除额外的代码,并留下一个例子,准确地显示你所看到的。你的问题也很不清楚。你也有换行符,这使得代码很难命名为Istanks。我试试看。我不知道需要换窗户。非常感谢。我试试看。我不知道有必要换窗户。太棒了,非常感谢。这将在下一步帮助我!太棒了,非常感谢。这将在下一步帮助我!