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/Python功能测试:根据链接文本查找同级元素_Python_Selenium_Css Selectors - Fatal编程技术网

Selenium/Python功能测试:根据链接文本查找同级元素

Selenium/Python功能测试:根据链接文本查找同级元素,python,selenium,css-selectors,Python,Selenium,Css Selectors,我正在使用Selenium和Python运行功能测试。在测试中,我最终希望用散列标记检查p标记的文本。此p标记的内容取决于a标记的文本,该文本是h3的子元素,该元素是p标记与哈希标记类的同级元素 例如,如果a标签的文本是“派拉蒙的流行文化持久力”,那么我想: 获取该a标记的h3父项 获取h3标记的第一个同级,该标记是带有散列标记的p标记 检查p标记的文本是否为“#IMDB” 使用散列标记类获取下一个p标记 检查p标签的文本是否为“#派拉蒙” 到目前为止,我只能通过文本抓取a标记,但我不确定

我正在使用Selenium和Python运行功能测试。在测试中,我最终希望用
散列标记检查
p
标记的文本。此
p
标记的内容取决于
a
标记的文本,该文本是
h3
的子元素,该元素是
p
标记与
哈希标记
类的同级元素

例如,如果
a
标签的文本是“派拉蒙的流行文化持久力”,那么我想:

  • 获取该
    a
    标记的
    h3
    父项
  • 获取
    h3
    标记的第一个同级,该标记是带有
    散列标记的
    p
    标记
  • 检查
    p
    标记的文本是否为“#IMDB”
  • 使用
    散列标记
    类获取下一个
    p
    标记
  • 检查
    p
    标签的文本是否为“#派拉蒙”

到目前为止,我只能通过文本抓取
a
标记,但我不确定如何遍历到具有
哈希标记的p标记
类:

def setUpClass(cls):
    cls.browser = webdriver.Chrome()

def test_DB_tags(self):
    paramount_link = self.browser.find_element_by_link_text('Paramount’s Pop Culture Staying Power')

link\u text
用于锚定标记,锚定标记是HTML中的
a
标记

  • h3
    a
    标记的父项

    //a[text()='your string']/..

  • /…
    表示从当前节点转到父标记

  • 获取
    h3
    标记的第一个同级,该标记是具有
    哈希标记类的
    p
    标记

    //a[text()='your string']/../following sibling::p[@class='lead db explainion']

  • 检查
    p
    标记的文本是否为
    “#IMDB”

  • //a[text()='your string']/../following sibling::p[text()='#IMDb']

  • 使用
    a
    哈希标记类获取下一个
    p
    标记
  • 这和第二点一样,你也可以写第五点。试着自己写,让我知道我可以验证它


    阅读有关xpath轴的更多信息

    如果我了解您想要了解的内容,请执行以下操作:

    first_p_text = driver.find_element_by_xpath('(//a[@href]/../..//p[@class="hash-tag"])[1]').text
    
  • a
    标记元素获取其文本
  • 从句子中找出第一个单词
  • 现在,要使用
    p
    tag和
    hash-tag
    类定位您要查找的第一个元素并获取其文本,可以按以下步骤进行:

    first_p_text = driver.find_element_by_xpath('(//a[@href]/../..//p[@class="hash-tag"])[1]').text
    
    第二个
    p
    将显示文本

    second_p_text = driver.find_element_by_xpath('(//a[@href]/../..//p[@class="hash-tag"])[2]').text
    
    现在是断言:

    self.assertTrue(first_p_text in first_word)
    self.assertTrue(second_p_text in "#IMDB")
    

    将此html代码粘贴到问题中。人们应该如何测试它?
    self.assertTrue(first_p_text in first_word)
    self.assertTrue(second_p_text in "#IMDB")