我在访问列表框值时遇到了SeleniumWeb驱动程序的问题。在
我能够粘贴值和传递我想选择的列表的类名,基本上每次我都要选择列表中显示的第一个选项
1 driver.get('https://my.maerskline.com/schedules/vessel')
2 button = driver.find_element_by_id("s2id_b-vesselCode")
3 button.click()
4 button1 = driver.find_element_by_id("s2id_autogen1_search")
5 button1.send_keys(Vessel_name)
6 button3 = driver.find_element_by_id("select2-results-dept-0 select2-result select2-result-selectable")
7 button3.click()
8 button2 = driver.find_element_by_id("schedulesByVesselSearchButton")
button2.click()
第6行给出了下面的错误
^{pr2}$你知道我怎么做吗?如果需要更多信息,请告诉我。谢谢
更新的代码
if Vessel_name != "":
#driver.get('https://my.maerskline.com/vessels?searchTerm={0}'.format(Vessel_name))
print(Vessel_name)
driver.get('https://my.maerskline.com/schedules/vessel')
button = driver.find_element_by_id("s2id_b-vesselCode")
button.click()
button1 = driver.find_element_by_id("s2id_autogen1_search")
button1.send_keys(Vessel_name)
button3 =driver.find_element_by_css_selector("#select2-results-1>li:nth-child(1)")
button3.click()
#button2 = driver.find_element_by_id("schedulesByVesselSearchButton")
#button2.click()
try:
soup = BeautifulSoup(driver.page_source)
您正在调用
find_element_by_id
,但提供类名。您应该使用element_by_css_selector("#select2-results-1 > li:nth-child(2)")
作为第二个选项。在检查以下内容
^{pr2}$检查此代码是否有效:
您应该根据元素的类名来定位元素。您提供的图像中的元素没有任何id
试试这个xpath:
如果确定总是要选择第一个
^{pr2}$li
,可以通过引用xpath的索引使其更加整洁:由于这是一个下拉式的值,您应该用户选择类来标识web元素
您可以参考以下链接来解决此问题:
{a1}
相关问题 更多 >
编程相关推荐