Python3 --- Selenium_CSS expression selects elements

Python3 --- Selenium_CSS expression selects elements

2020-04-08

1: CSS Selector Syntax selection theory

  CSS syntax used to select the action elements. The basic structure: selector {statement}. Below: We learn Selenium is mainly used its "select" function. Specific learning CSS syntax reference links: https://www.w3school.com.cn/css/css_syntax.asp

 

  Select a single element by CSS Selector Method: find_element_by_css_selector (css selector parameter)

  Select all the elements through CSS Selector methods: find_elements_by_css_selector (css selector parameter)

 

2: Select elements based on tag name.

  Usage: find_elements_by_css_selector ( 'tag name')

#!/usr/bin/env python

from selenium import webdriver

driver = webdriver.Chrome()

driver.get('https://www.cnblogs.com/')

driver_script = driver.find_elements_by_css_selector('script')

for i in driver_script:
    print(i)

driver.close()

3: The id attribute syntax is an element selected in the previous id number plus a number #: #id value

#!/usr/bin/env python

from selenium import webdriver

driver = webdriver.Chrome()

driver.get('https://www.cnblogs.com/')

driver_id_main = driver.find_element_by_css_selector('#main')

print(driver_id_main.text)

driver.close()

4: Select a syntax element in accordance with the class attribute class value plus a front point: value .class

#!/usr/bin/env python

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/')
driver_class_rss_link = driver.find_elements_by_css_selector('.rss_link')

for i in driver_class_rss_link:
    print(i.text)

driver.close()

5: Select the sub-elements

  Then label which contains elements called sub-elements. such as:

  Represents a sub-element using the ">" For example: targeting elements <div id = 'layer1'> can be written as follows: #container> # layer1 

  Support continuous positioning, such as: #container> # layer1> .post_nav_block

< Div ID = 'Container' > 
    
    < div ID = 'Layer1' >    # < div ID = 'Layer1' > of < div ID = 'Container' > child element.
        < Div ID = 'inner11' > 
            < span > inner layer. 11 </ span > 
        </ div > 
        < div ID = 'inner12' > 
            < span > inner layer 12 <
        > 
    </ Div > 

    < div ID = 'Layer2' >   # < div ID = 'Layer2' > of < div ID = 'Container' > child element.
        < Div ID = 'inner21' > 
            < span > inner layer 21 is </ span > 
        </ div > 
    </ div > 
    
</ div >
#!/usr/bin/env python

from selenium import webdriver

driver = webdriver.Chrome()

driver.get('https://www.cnblogs.com/')

driver_1 = driver.find_elements_by_css_selector('#main > .post_nav_block_wrapper')

for i in driver_1:
    print(i.text)

driver.close()

 6: Select the descendant elements

  It refers to all descendent elements among the elements contained in the label (including sub-elements)

  It represents a sub-element using the "space", such as: positioning element <div id = 'container'> contains all the elements which can be written as follows: #container # layer1 

  Supports multiple selection

#!/usr/bin/env python

from selenium import webdriver

driver = webdriver.Chrome()

driver.get('https://www.cnblogs.com/')

driver_1 = driver.find_elements_by_css_selector('#main  .rss_link')

for i in driver_1:
    print(i.text)

driver.close()

7: The Select targeting property value

  css selector selects an element supported by any attribute grammar is a square bracket with [] 

#!/usr/bin/env python

from selenium import webdriver

driver = webdriver.Chrome()

driver.get('https://www.cnblogs.com/')

driver_1 = driver.find_elements_by_css_selector('[href = "#"]')

for i in driver_1:
    print(i.text)
driver.close()

8: Group Selection

  Group selection using the "comma" two different elements selected

#!/usr/bin/env python

from selenium import webdriver

driver = webdriver.Chrome()

driver.get('https://www.cnblogs.com/')

driver_1 = driver.find_elements_by_css_selector('#main [href="#"],#main [href="/following"]')

for i in driver_1:
    print(i.text)

driver.close()

9: selecting a child node in sequence

  Use "nth-child" to specify the parent element of several sub-nodes

  9.1: Select an element of the second child

  :nth-child(2)

#!/usr/bin/env python

from selenium import webdriver

driver = webdriver.Chrome()

driver.get('https://www.cnblogs.com/')

driver_1 = driver.find_elements_by_css_selector('#main .post_nav_block :nth-child(2)')

for i in driver_1:
    print(i.text)

driver.close()

  9.2: Specify the type specified tag under certain element of several sub-node

  span:nth-child(2)

  

Guess you like

Origin www.cnblogs.com/aaron456-rgv/p/12663403.html