通过selenium识别元素的代码
当我用firebug检查一个元素时,它显示如下:通过selenium识别元素的代码,selenium,Selenium,当我用firebug检查一个元素时,它显示如下: <a onclick="viewmodel.view_results(false);" href="#">Create new challenge</a> 为此,我编写了使用Xpath、Href标识元素的代码。 但是Webdriver无法识别元素 你们中有谁能建议我如何用python编写代码来识别这些元素吗?尝试使用xpath“//a[text()='Create new challenge')]”“尝试使用xpa
<a onclick="viewmodel.view_results(false);" href="#">Create new challenge</a>
为此,我编写了使用Xpath、Href标识元素的代码。
但是Webdriver
无法识别元素
你们中有谁能建议我如何用python编写代码来识别这些元素吗?尝试使用xpath
“//a[text()='Create new challenge')]”“
尝试使用xpath”//a[text()='Create new challenge')]”“
尝试使用xpath”//a[text()='Create new challenge')]”“][/code>尝试使用xpath[text()=“Create new challenge”)“
我强烈建议不要使用YuvarajHK所走的路线。Xpath非常有用
相反,使用CSS。因此,这里的问题是,实际上没有一个属性可以与之匹配。在onclick
或href
上进行匹配是不明智的,因此在CSS方面,您只有一个选项。这是我极力推荐的一个选项
使用父子层次结构来唯一标识元素
因此,您的元素有一个父元素,而不是使用另一个答案中给出的xpath,因为在文本中匹配xpath效率很低,所以请查找该特定元素的父元素
考虑以下几点:
<div id="newChallenge">
...
<a onclick="viewmodel.view_results(false);" href="#">Create new challenge</a>
...
</div>
(或)
(取决于a
是否是的后代而不是的子代)
此外,如果您有多个链接:
<div id="newChallenge">
<a href="someOtherPage.html">Hi</a>
<a onclick="viewmodel.view_results(false);" href="#">Create new challenge</a>
<a onclick="viewmodel.view_results(false);" href="#">Create something else</a>
</div>
然后,我们可以只添加CSS伪类:nth类型的
(或者甚至其他:nth-*
伪类)
您的最终选择可能是
div#newChallenge a:nth-of-type(2)
总之:用于在python中查找元素的代码如下:
driver.find_elements_by_css_selector('div#newChallenge a:nth-of-type(2)');
我强烈建议不要使用YuvarajHK所走的路线 相反,使用CSS。因此,这里的问题是,实际上没有一个属性可以与之匹配。在
onclick
或href
上进行匹配是不明智的,因此在CSS方面,您只有一个选项。这是我极力推荐的一个选项
使用父子层次结构来唯一标识元素
因此,您的元素有一个父元素,而不是使用另一个答案中给出的xpath,因为在文本中匹配xpath效率很低,所以请查找该特定元素的父元素
考虑以下几点:
<div id="newChallenge">
...
<a onclick="viewmodel.view_results(false);" href="#">Create new challenge</a>
...
</div>
(或)
(取决于a
是否是的后代而不是的子代)
此外,如果您有多个链接:
<div id="newChallenge">
<a href="someOtherPage.html">Hi</a>
<a onclick="viewmodel.view_results(false);" href="#">Create new challenge</a>
<a onclick="viewmodel.view_results(false);" href="#">Create something else</a>
</div>
然后,我们可以只添加CSS伪类:nth类型的
(或者甚至其他:nth-*
伪类)
您的最终选择可能是
div#newChallenge a:nth-of-type(2)
总之:用于在python中查找元素的代码如下:
driver.find_elements_by_css_selector('div#newChallenge a:nth-of-type(2)');
我强烈建议不要使用YuvarajHK所走的路线 相反,使用CSS。因此,这里的问题是,实际上没有一个属性可以与之匹配。在
onclick
或href
上进行匹配是不明智的,因此在CSS方面,您只有一个选项。这是我极力推荐的一个选项
使用父子层次结构来唯一标识元素
因此,您的元素有一个父元素,而不是使用另一个答案中给出的xpath,因为在文本中匹配xpath效率很低,所以请查找该特定元素的父元素
考虑以下几点:
<div id="newChallenge">
...
<a onclick="viewmodel.view_results(false);" href="#">Create new challenge</a>
...
</div>
(或)
(取决于a
是否是的后代而不是的子代)
此外,如果您有多个链接:
<div id="newChallenge">
<a href="someOtherPage.html">Hi</a>
<a onclick="viewmodel.view_results(false);" href="#">Create new challenge</a>
<a onclick="viewmodel.view_results(false);" href="#">Create something else</a>
</div>
然后,我们可以只添加CSS伪类:nth类型的
(或者甚至其他:nth-*
伪类)
您的最终选择可能是
div#newChallenge a:nth-of-type(2)
总之:用于在python中查找元素的代码如下:
driver.find_elements_by_css_selector('div#newChallenge a:nth-of-type(2)');
我强烈建议不要使用YuvarajHK所走的路线 相反,使用CSS。因此,这里的问题是,实际上没有一个属性可以与之匹配。在
onclick
或href
上进行匹配是不明智的,因此在CSS方面,您只有一个选项。这是我极力推荐的一个选项
使用父子层次结构来唯一标识元素
因此,您的元素有一个父元素,而不是使用另一个答案中给出的xpath,因为在文本中匹配xpath效率很低,所以请查找该特定元素的父元素
考虑以下几点:
<div id="newChallenge">
...
<a onclick="viewmodel.view_results(false);" href="#">Create new challenge</a>
...
</div>
(或)
(取决于a
是否是的后代而不是的子代)
此外,如果您有多个链接:
<div id="newChallenge">
<a href="someOtherPage.html">Hi</a>
<a onclick="viewmodel.view_results(false);" href="#">Create new challenge</a>
<a onclick="viewmodel.view_results(false);" href="#">Create something else</a>
</div>
然后,我们可以只添加CSS伪类:nth类型的
(或者甚至其他:nth-*
伪类)
您的最终选择可能是
div#newChallenge a:nth-of-type(2)
总之:用于在python中查找元素的代码如下:
driver.find_elements_by_css_selector('div#newChallenge a:nth-of-type(2)');
css=a[onclick*='viewmodel.view\u结果(false)'
请告诉我上述CSS选择器是否工作。CSS=a[onclick*='viewmodel.view\u results(false)]
请告诉我上述CSS选择器是否工作。CSS=a[onclick*='viewmodel.view\u results(false)]
请告诉我上述CSS选择器是否工作。CSS=a[onclick*='viewmodel.view\u results(false)]
请让我知道上面的CSS选择器是否工作。当我检查firebug显示为的元素时,当我检查firebug显示为创建新挑战当我检查firebug显示为的元素时创建新挑战当我检查firebug显示为创建新挑战