Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过selenium识别元素的代码_Selenium - Fatal编程技术网

通过selenium识别元素的代码

通过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

当我用firebug检查一个元素时,它显示如下:

<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显示为创建新挑战