我正在尝试从this website
中检索所有可能的列表模型仅在选择年份时打开。类似地,只有在选择模型时才会打开。我想存储Year,Model和Make的所有组合用于学习目的。
但是我无法仅点击年份字段。它似乎是隐藏的,如果没有这个,我就无法继续使用其他代码。
$validator = Validator::make($request->all(), [
'class_code' => 'required|exists:classrooms,class_code',
],[
'class_code.required' => 'Please specify the Class Code', // change this to your required message
'class_code.exists' => 'Your code is wrong'
]);
它给出错误: -
消息:没有这样的元素:无法找到元素:{"方法":" id","选择器":" sbToggle_27562807" }
答案 0 :(得分:1)
每次重新加载页面时元素ID都会发生变化,您必须找到一种不同的方式来查找下拉列表。
例如,您始终可以找到带有“ - 选择年份 - ”文字的<a>
链接。
答案 1 :(得分:1)
使用此CSS选择器转到选择年份下拉列表中向下的箭头
"div[id='fldYear'] > div[class='sbHolder'] > a[class='sbToggle']"
或此xpath
"//div[@id='fldYear']/div[@class='sbHolder']/a[@class='sbToggle']"
点击这个以获取选项
答案 2 :(得分:1)
消息:没有这样的元素:无法找到元素:{&#34;方法&#34;:&#34; id&#34;,&#34;选择器&#34;:&#34; sbToggle_27562807&#34; }
year
元素未隐藏,实际上使用find_element_by_id('sbToggle_27562807')
定位元素的定位器不正确。在此元素中,id
属性值会动态更改您无法找到此元素的原因。
您应该尝试使用一些不同的定位器,而不是id
定位器。我建议,为了更好地尝试使用find_element_by_css_selector()
,如下所示: -
el = driver.find_element_by_css_selector("div#fldYear a.sbToggle")
el.click()