- Selenium WebDriver - Discussion
- Selenium WebDriver - Useful Resources
- Selenium WebDriver - Quick Guide
- Double Click
- Right Click
- Capture Screenshots
- Scroll Operations
- Chrome WebDriver Options
- JavaScript Executor
- Select Support
- Wait Support
- Headless Execution
- Executing Tests in Multiple Browsers
- Handling Checkboxes
- Read/Write data from Excel
- Generating HTML Test Reports in Python
- Color Support
- Handling Edit Boxes
- Handling Links
- Alerts
- Windows
- Drag and Drop
- Forms
- Create a Basic Test
- Action Class
- Exceptions
- Cookies
- Backward and Forward Navigation
- Pop-ups
- Explicit and Implicit Wait
- Identify Multiple Elements
- Identify Single Element
- Browser Navigation
- Installation
- Introduction
- Home
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Selenium Webdriver - Quick Guide
Selenium Webdriver - Introduction
浏览器是检测申请前端和在浏览器上执行任务的有力工具。 可以采用多种方案语言,如:沙捞越、 Java、C#、Java等。
含沙尘的ium比较容易理解,在ver中则很短。 可在沙尔获得的APICES使我们能够利用Selenium与浏览器建立联系。 含沙尘的ium比较容易理解,在ver中则很短。 可在沙尔获得的APICES使我们能够利用Selenium与浏览器建立联系。
硫化物提供各种用于为 Chrome、IE和E等不同的浏览器制造检测的甲型六氯环己烷。 它可以在Windows、Mac、Libert等各种平台上使用。
Reasons to learn Selenium with Python
在方案拟订方面,甲壳更容易学习和契约。
在与 Java的Selenium进行测试时,我们必须注意开始和结束的图书馆。 在沙尔,只需要照顾戒律。
在Selenium开发的含有甲 Python的试验比在 Java写的更快。
Reasons to learn Selenium Webdriver
学习Selenium Webdriver的原因如下:
它是一个开放的来源,没有任何许可证费用。
它可以采取 mo和键盘行动,如rag和 drop、主要压力、点击和搁置等。
它有一个非常友好的促动人。
它可以与测试与Junnit等框架相结合,建立诸如Maven等工具,如Jenkins等持续融合工具。
它得到巨大的社区支持。
它可以以无头寸铁的方式执行试验。
Selenium Webdriver - Installation
可在沙尔山安装和安装网幕器,其步骤如下:
http://www.python.org/downloads/>。
Step 4 > >,应在以下道路上下载: C:Users<User>AppData LocalProgramsPythonPython<version> Step 5——对Windows用户来说,我们必须没收环境变数中沙捞越和代谢(在 Python里加固)的双倍。 Step 7——对装饰装置而言,指挥系统如下: Step 8——现在应在粉碎箱内产生一个叫做Selenium的新夹。 升级至最新硫化物,指挥如下: Step 10——下面,我们必须从以下链接下载称作PyCharm的Zehur编辑—— http://www.jetbrains.com/pycharm/>。 Step 11——下载Cpck。 Step 12-For Selenium webdriver in-030, 点击下载纽顿,低于社区版本(免费使用)。 Step 13——在安装了PyCharm之后,我们必须从文件-->、新项目-和Give a Project name, 即Python Project 创建新项目。 然后点击Create。 我们可以在沙伦ium在沙尔富尔的网上浏览器的帮助下,开放浏览器和浏览器。 这种做法得到这种方法的帮助。 在使测试自动化的同时,我们创建的第一步是用URL启动申请。 The syntax of Selenium Webdriver is as follows - 要想找到一种方法,网络用户等到网页完全装满后才能进入下一步。 如果我们试图启用一个网页,上面有众多美国宇宙航空研究开发机构的电话,那么当网页完全装满时,网上用户就不知道。 为了解决这个问题,我们必须在法典中规定等待。 se网络用户的代码实施如下: 产出显示信息——有退出代码的程序。 0. 这意味着,上述沙捞法成功执行。 另外,申请的页标题(从司机处获得)。 标题方法——最佳技术问题及答案在册。 一旦我们浏览一个网页,我们就不得不与网页上的现有内容进行互动,例如点击连接/布顿,进入一个信箱内的案文,从而完成我们的自动化测试。 为此,我们的首要任务是确定这一要素。 我们可以使用背后特性确定身份要素,并使用这种方法发现_element_by_id。 之后,第一个与属性补贴的配对价值相配的元素被退回。 如果没有与补贴金额相匹配的成分,则不得thrown。 识别要素的意想x如下: 让我们看一看一个网络要素的html代码—— 上述图像中强调的ed盒具有价值格西-伊-id1的特性。 让我们在发现这一ed子后,设法将一些案文输入到该盒中。 确定网络要素的编码执行如下: 产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,在ed箱内(从 get子手法中找到)所输入的价值——ium在ole子上印刷。 一旦我们浏览一个网页,我们就不得不与网页上的现有内容进行互动,例如点击连接/布顿,进入一个信箱内的案文,从而完成我们的自动化测试。 为此,我们的首要任务是确定这一要素。 我们可以使用名称特征作为识别要素,并利用方法发现_element_by_name。 之后,第一个与属性名称的配对价值相匹配的内容被退回。 如果名称属性没有对应值,则不得thrown。 www.un.org/Depts/DGACM/index_french.htm 让我们看见以下的《html》网络内容。 上述图像中强调的编辑箱有一个名称特征,可检索价值。 让我们在发现这一ed子后,设法将一些案文输入到该盒中。 按名称列出单一要素的编码执行如下: 产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,在ed子(从硬盘 method法中提取)中输入的价值—— Java在ole子中印刷。 一旦我们浏览一个网页,我们就不得不与网页上的现有内容进行互动,例如点击连接/布顿,进入一个信箱内的案文,从而完成我们的自动化测试。 为此,我们的首要任务是确定这一要素。 我们可以使用该类特性来确认其身份,并利用这种方法发现_element_by_class_name。 之后,归还了与属性类别对应值的第一个要素。 如果没有同级属性相匹配的成分,则不得thrown。 The syntax for identifying inspanidual elements by categoryname is as follows: 让我们看见以下的《html》网络内容。 上述图像中强调的网络要素具有价值标题的类别特性。 让我们在确定这一要素之后,设法获得这一内容的文本。 按职等分列的确定单一成分的编码如下: 产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,网上内容(从文字方法中获取)——“大约有名人”的文字也用在“灯光”上。 一旦我们浏览一个网页,我们就必须与网页上的现有网站进行互动,例如点击连接/布顿,进入一个信箱内的案文,从而完成我们的自动化测试。 为此,我们的首要任务是确定这一要素。 我们可以使用标签作为识别要素,并利用这种方法发现_element_by_tag_name。 之后,与对应标的首个要素被退回。 如果与对应的标签没有任何内容,则不得thrown。 The syntax for identifying inspanidual elements by Tagname is as: 让我们看见以下的《html》网络内容。 上述图像中强调的ed子有标签——投入。 让我们在发现这一ed子后,设法将一些案文输入到该盒中。 以塔格名称确定单一要素的守则执行情况如下: 产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,在ed箱内(从硬盘 method法中获取)所输入的价值——Selenium compounds在 con子中印刷。 一旦我们浏览一个网页,我们就可以通过点击一个链接来完成我们的自动化测试。 链接案文用于一个具有主轴的元件。 为此,我们的首要任务是确定这一要素。 我们可以使用联系案文赋予其身份要素,并利用这一方法找到_element_by_pnk_text。 由此,第一个与特定链接文本的配对价值相符的内容被退回。 如果与链接文本的对应价值没有关联要素,则不得thrown。 syntax,用于通过链接文本确定单一要素如下: 让我们看见以下的《html》网络内容。 上述图像中强调的链接有标签——一种和链接文本——隐私政策。 让我们在查明这一联系后,设法点击这一联系。 通过链接文本确定单一要素的编码执行如下: 产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,申请的页标题(从司机处获得)。 标题方法——图兰斯点的隐私政策——图西人点的照片在圣殿上印刷。 一旦我们浏览一个网页,我们就可以通过点击一个链接来完成我们的自动化测试。 部分链接案文用于一个具有主轴的元件。 为此,我们的首要任务是确定这一要素。 我们可以使用部分链接案文,作为确定该文本的一个要素,并利用该方法发现_element_by_partial_pnk_text。 由此,将部分链接案文的对应价值中的第一个要素退还。 如果与部分链接案文的配对价值没有关联,则不得thrown。 The syntax for identifying one content by Partial Link text is as follows - 让我们看见以下的《html》网络内容。 上述图像中强调的链接有标签——部分链接文本——退款。 让我们在查明这一联系后,设法点击这一联系。 按部分链接案文确定单一要素的编码执行如下: 产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,申请的页标题(从司机处获得)。 标题方法——回归、退款和复读; 免职政策——选民点印在议会。 一旦我们浏览一个网页,我们就必须与网页上的现有网站进行互动,例如点击连接/布顿,进入一个信箱内的案文,从而完成我们的自动化测试。 为此,我们的首要任务是确定这一要素。 我们可以为确定其身份而设置一个要素的挑选器,并使用这种方法。 之后,第一个与特定物品的配对价值相匹配的元件被退回。 如果没有元件的配对价值,则不得thrown。 中央支助事务甄选员确定单一要素的辛金如下: 下文将讨论创建一种表达方式的规则。 为了用芯片识别该元素,该表述应为标签[价值]。 我们还可以具体利用假名来形成一种表达。
pip install selenium.
pip install --U selenium.
pip show Selenium.
Selenium Webdriver - Browser Navigation
driver.get("<url>")
driver.get("https://www.tutorialspoint.com/index.htm")
Code Implementation
from selenium import webdriver
#set chromedriver.exe path
driver = webdriver.Chrome(executable_path= ../drivers/chromedriver )
#url launch
driver.get("https://www.tutorialspoint.com/questions/index.php")
#get page title
print( Page title: + driver.title)
#quit browser
driver.quit()
Output
Selenium Webdriver - Identify Single Element
By Id
driver.find_element_by_id("value of id attribute")
Code Implementation
from selenium import webdriver
#set chromedriver.exe path
driver = webdriver.Chrome(executable_path= ../drivers/chromedriver )
#url launch
driver.get("https://www.tutorialspoint.com/index.htm")
#identify edit box with id
l = driver.find_element_by_id( gsc-i-id1 )
#input text
l.send_keys( Selenium )
#obtain value entered
v = l.get_attribute( value )
print( Value entered: + v)
#driver quit
driver.quit()
Output
By Name
driver.find_element_by_name("value of name attribute")
Code Implementation
from selenium import webdriver
#set chromedriver.exe path
driver = webdriver.Chrome(executable_path= ../drivers/chromedriver )
#url launch
driver.get("https://www.tutorialspoint.com/index.htm")
#identify edit box with name
l = driver.find_element_by_name( search )
#input text
l.send_keys( Selenium Java )
#obtain value entered
v = l.get_attribute( value )
print( Value entered: + v)
#driver close
driver.close()
Output
By ClassName
driver.find_element_by_class_name("value of class attribute")
Code Implementation
from selenium import webdriver
#set chromedriver.exe path
driver = webdriver.Chrome(executable_path= ../drivers/chromedriver )
#url launch
driver.get("https://www.tutorialspoint.com/about/about_careers.htm")
#identify edit box with class
l = driver.find_element_by_class_name( heading )
#identify text
v = l.text
#text obtained
print( Text is: + v)
#driver close
driver.close()
Output
By TagName
driver.find_element_by_tag_name("tagname of element")
Code Implementation
from selenium import webdriver
#set chromedriver.exe path
driver = webdriver.Chrome(executable_path= ../drivers/chromedriver )
#url launch
driver.get("https://www.tutorialspoint.com/index.htm")
#identify edit box with tagname
l = driver.find_element_by_tag_name( input )
#input text
l.send_keys( Selenium Python )
#obtain value entered
v = l.get_attribute( value )
print( Value entered: + v)
#driver close
driver.close()
Output
By Link Text
driver.find_element_by_pnk_text("value of pnk text")
Code Implementation
from selenium import webdriver
driver = webdriver.Chrome(executable_path= ../drivers/chromedriver )
#url launch
driver.get("https://www.tutorialspoint.com/about/about_careers.htm")
#identify pnk with pnk text
l = driver.find_element_by_pnk_text( Privacy Popcy )
#perform cpck
l.cpck()
print( Page navigated after cpck: + driver.title)
#driver quit
driver.quit()
Output
By Partial Link Text
driver.find_element_by_partial_pnk_text("value of partial ink text")
Code Implementation
from selenium import webdriver
driver = webdriver.Chrome(executable_path= ../drivers/chromedriver )
#url launch
driver.get("https://www.tutorialspoint.com/about/about_careers.htm")
#identify pnk with partial pnk text
l = driver.find_element_by_partial_pnk_text( Refund )
#perform cpck
l.cpck()
print( Page navigated after cpck: + driver.title)
#driver quit
driver.quit()
Output
By CSS Selector
driver.find_element_by_css_selector("value of css")
Rules to create CSS Expression
粗略地说,标语的形式应为标语。 例如,投入编号[如果投入是标的,txt是否定性归属的价值]。
标语的表述形式应为标签。 班级。 例如,投入。
如果父母中有一生子女,而且我们要确定哪一个孩子,那么这种表达方式就应该有哪一种类型。
在上述法典中,如果我们想确定第四种幼童[问答],那么这种表达方式就应当加以表述。 同样,为了确定最后一名儿童,应当表达这些孩子。 阅读:最后孩子。
对于价值观正在动态变化的属性,我们可以使用^=确定某一要素,其属性价值始于某一特定案文。 例如,投入[名称= qa] 在这方面,投入是标的,其名称价值从qa开始。
对于价值观正在动态变化的属性,我们可以使用并使用美元;=确定某一要素,其属性价值以特定案文为目的。 例如,投入[类别和数量;美元;txt] 这里,投入是标签和类别属性价值,以tx告终。
对于价值不断变化的特点,我们可以使用*来确定一个特性价值包含具体次案文的内容。 例如,投入[名称* = nam] 在此,投入是标的,名词的价值包含次案文名称。
让我们看见以下的《html》网络内容。
上述图像中强调的编辑箱有一个名称特征,可进行价值检索,标语应当为投入[名称=搜索]。 让我们在发现这一ed子后,设法将一些案文输入到该盒中。
Code Implementation
安保部甄选人员确定单一要素的守则执行情况如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/index.htm") #identify element with css l = driver.find_element_by_css_selector("input[name= search ]") l.send_keys( Selenium Python ) v = l.get_attribute( value ) print( Value entered is: + v) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,在ed箱内(从硬盘 method法中获取)所输入的价值——Selenium compounds在 con子中印刷。
ByXpath
一旦我们浏览一个网页,我们就必须与网页上的现有网站进行互动,例如点击连接/布顿,进入一个信箱内的案文,从而完成我们的自动化测试。
为此,我们的首要任务是确定这一要素。 我们可以为确定其身份而创造一个要素,并使用这种方法。 由此,第一个与特定xpath的配对值相配的元素被退回。
如果没有与锡帕特的配对值相匹配的因素,则不得thrown。
在Xpath确定单一成分的辛迪加如下:
driver.find_element_by_xpath("value of xpath")
Rules to create Xpath Expression
下文将讨论制作Xpath表述的规则。
为了确定Xpath的成分,该表述应为/tagname[@attribute=数值]。 可以有两种类型的xpath——相对和绝对。 绝对的xpath从象征/象征开始,从根 no到我们想确定的内容。
例如,
/html/body/span[1]/span/span[1]/a
相对的Xpath从//文号开始,不从深层开始。
例如,
//img[@alt= tutorialspoint ]
让我们看一看突出联系的《html法典》——从根基开始。
这一要素的绝对标准如下:
/html/body/span[1]/span/span[1]/a.
部分住宅的相对食堂如下:
//a[@title= TutorialsPoint - Home ].
Functions
还有一些职能有助于制定相对的Xpath表述。
text(
用来确定一个内容及其可见的文本。 x的表述如下:
//*[text()= Home ].
start- with
它用来确定一个要素,其属性价值始于具体案文。 这一功能通常用于每一页负荷价值变化的特性。
让我们看到Q/A链接的html。
x应表述如下:
//a[starts-with(@title, Questions & )].
contains(
它确定了一个要素,其属性价值包含一个次案文。 这一功能通常用于每一页负荷价值变化的特性。
x的表述如下:
//a[contains(@title, Questions & Answers )].
让我们看一看《html》的网络版,如下文所示。
上述图像中强调的编辑箱有一个名称特征,有价值搜索,Xpath表述应为//input[@name=搜索]。 让我们在发现这一ed子后,设法将一些案文输入到该盒中。
Code Implementation
《刑法》对XPath确定单一要素的执行情况如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/index.htm") #identify element with xpath l = driver.find_element_by_xpath("//input[@name= search ]") l.send_keys( Selenium Python ) v = l.get_attribute( value ) print( Value entered is: + v) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,在ed箱内(从硬盘 method法中获取)所输入的价值——Selenium compounds在 con子中印刷。
Selenium Webdriver - Identify Multiple Elements
在本章中,我们将学习如何通过各种选择确定多个要素。 让我们首先了解Id确定多个要素。
By id
所在地人不建议确定多个要素,因为补贴的价值是某一要素所独有的,适用于页上的一个单一要素。
By Class name
一旦我们浏览一个网页,我们就必须与网页上的现有网站进行互动,例如点击连接/布顿,进入一个信箱内的案文,从而完成我们的自动化测试。
为此,我们的首要工作是确定这些要素。 我们可以使用该类特性来确认这些要素,并利用这一方法找到_elements_by_class_name。 因此,所有与属性类别对应值的成分均以清单形式退还。
如果不存在与类别属性相匹配的价值相匹配的因素,应退还一份空档清单。
The syntax for identifying multi elements by categoryname is as follows -
driver.find_elements_by_class_name("value of class attribute")
让我们看一看《html》中给出的等级归属的名人。
上述形象中强调的阶级特性的价值是各章。 让我们努力计算这种网站的数量。
Code Implementation
按职等分列的确定多个要素的法规执行情况如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify elements with class attribute l = driver.find_elements_by_class_name("chapters") #count elements s = len(l) print( Count is: ) print(s) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,具有类别属性价值章节(从透镜中获取)的网络域名总数——2个在ole中印刷。
By Tagname
一旦我们浏览一个网页,我们就必须与网页上的现有网站进行互动,例如点击连接/布顿,进入一个信箱内的案文,从而完成我们的自动化测试。
为此,我们的首要工作是确定这些要素。 我们可以使用标签来确认这些要素,并利用这一方法找到_elements_by_tag_name。 因此,标的对应值的所有要素都以清单形式重新列出。
如果没有标的对应值要素,应退还一份空档清单。
The syntax for identifying multi elements by Tagname is as follows -
driver.find_elements_by_tag_name("value of tagname")
让我们看一看《html》的网络版,其内容如下:
上述图像中强调的标签价值为 h4。 让我们努力计算点数,点数为四。
Code Implementation
用塔格罗名称确定多个要素的守则执行如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/index.htm") #identify elements with tagname l = driver.find_elements_by_tag_name("h4") #count elements s = len(l) print( Count is: ) print(s) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,标号为h4(从透镜中提取)的网点总数——1个在ole中印刷。
By Partial Link Text
一旦我们浏览一个网页,我们就可能不得不通过点击一个链接来完成我们的自动化测试。 部分链接案文用于有主线的元件。
为此,我们的首要工作是确定这些要素。 我们可以使用部分链接文字描述其身份识别要素,并将方法的识别方法推算成“埃比_partial_pnk_text”。 因此,以清单形式归还了部分链接案文的对应价值的所有要素。
如果部分链接案文没有对应价值的内容,应退还一份空档清单。
The syntax for identifying multi elements by Partial Link text is as follows -
driver.find_elements_by_partial_pnk_text("value of partial pnk text")
让我们看见以下的《html联系法》:
重点提到的链接——上述图像中的使用术语有标签——部分链接文本——术语。 让我们在确定案文后努力确定案文。
Code Implementation
按部分链接案文确定多个要素的守则执行如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify elements with partial pnk text l = driver.find_elements_by_partial_pnk_text( Terms ) #count elements s = len(l) #iterate through pst for i in l: #obtain text t = i.text print( Text is: + t) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,与部分链接文本定位器(从文字方法中找到)所查明的链接文本——使用术语在奥索尔印刷。
By Link Text
一旦我们浏览一个网页,我们就可能不得不通过点击一个链接来完成我们的自动化测试。 链接案文用于有主轴的元件。
为此,我们的首要工作是确定这些要素。 我们可以使用联系案文赋予其身份要素,并利用这一方法找到_elements_by_pnk_text。 因此,所有与特定链接文本对应值的内容均以清单形式重新列出。
如果没有任何内容与链接文本的对应价值相符,则应退还一份空档清单。
The syntax for identifying multi elements by Link text is as follows -
driver.find_elements_by_pnk_text("value of pnk text")
让我们看见以下的《html联系法》:
重点提到的链接――上述图像中的库克群岛政策具有标签――联系文本――库克群岛政策。 让我们在确定案文后努力确定案文。
Code Implementation
通过链接文本确定多个要素的守则执行如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify elements with pnk text l = driver.find_elements_by_pnk_text( Cookies Popcy ) #count elements s = len(l) #iterate through pst for i in l: #obtain text t = i.text print( Text is: + t) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,与链接文本定位器(从文字方法中找到)所查明的联系文本——库克群岛政策在奥索尔印刷。
By Name
一旦我们浏览一个网页,我们就必须与网页上的现有网站进行互动,例如点击连接/布顿,进入一个信箱内的案文,从而完成我们的自动化测试。
为此,我们的首要工作是确定这些要素。 我们可以使用识别要素的名称,并利用这种方法找到“名人——姓名”。 因此,以名单形式归还属地名称相应值的要素。
如果姓名属性没有对应值,应退还一份空档清单。
The syntax for identifying multi elements by name is as follows -
driver.find_elements_by_name("value of name attribute")
让我们看一看《html》的网络版,其内容如下:
上述图像中强调的编辑箱有一个名称特征,可检索价值。 让我们在发现这一ed子后,设法将一些案文输入到该盒中。
Code Implementation
按姓名确定多个要素的守则执行如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/index.htm") #identify elements with name attribute l = driver.find_elements_by_name( search ) #count elements s = len(l) #iterate through pst for i in l: #obtain text t = i.send_keys( Selenium Python ) v = i.get_attribute( value ) print( Value entered is: + v) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,在ed箱内(从硬盘 method法中获取)所输入的价值——Selenium compounds在 con子中印刷。
By CSS Selector
一旦我们浏览一个网页,我们就必须与网页上的现有网站进行互动,例如点击连接/布顿,进入一个信箱内的案文,从而完成我们的自动化测试。
为此,我们的首要工作是确定这些要素。 我们可以为他们的身份建立一套挑选器,并利用这一方法找到——从_css_selector。 因此,以清单形式归还了特定物品的配对价值。
如果没有元件的配对价值,应退还一份空置清单。
Csyntax,用于识别CSS的多个要素 选择如下:
driver.find_elements_by_css_selector("value of css")
Rules for CSS Expression
下文将讨论创建一种表达方式的规则。 −
为了用芯片识别该元素,该表述应为标签[价值]。 我们还可以具体利用假名来形成一种表达。
粗略地说,标语的形式应为标语。 例如,投入编号[如果投入是标的,txt是否定性归属的价值]。
With class, the format of css expression should be tagname.class . 例如, input.cls-txt [here input is the tagname and the cls-txt is the value of the class attribute].
如果父母中有一生子女,而且我们要确定哪一个孩子,那么这种表达方式就应该有哪一种类型。
在上述法典中,如果我们想确定第4个子女[问答],那么这种表达方式就应当加以表述。 同样,为了确定最后一名儿童,应当表达这些孩子。 阅读:最后孩子。
For attributes whose values are dynamically changing, we can use ^= to locate an element whose attribute value starts with a particular text. 例如, input[name^= qa ] [here input is the tagname and the value of the name attribute starts with qa].
对于价值观正在动态变化的属性,我们可以使用并使用美元;=确定某一要素,其属性价值以特定案文为目的。 例如,投入[类别和数量;美元;txt] 这里,投入是标签和类别属性价值,以tx告终。
对于价值不断变化的特点,我们可以使用*来确定一个特性价值包含具体次案文的内容。 例如,投入[名称* = nam] 在此,投入是标的,名词的价值包含次案文名称。
让我们看看一下《html》的网络内容。
上述图像中强调的编辑箱有一个名称特征,可进行价值检索,标语应当为投入[名称=搜索]。 让我们在发现这一ed子后,设法将一些案文输入到该盒中。
Code Implementation
捷克统计局甄选人员确定多个要素的守则执行如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/index.htm") #identify elements with css l = driver.find_elements_by_css_selector("input[name= search ]") #count elements s = len(l) #iterate through pst for i in l: #obtain text t = i.send_keys( Tutorialspoint ) v = i.get_attribute( value ) print( Value entered is: + v) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,在编辑箱内(从硬盘式手法中找到)输入的价值——图西里点在议会中印刷。
By Xpath
一旦我们浏览一个网页,我们就必须与网页上的现有网站进行互动,例如点击连接/布顿,进入一个信箱内的案文,从而完成我们的自动化测试。
为此,我们的首要工作是确定这些要素。 我们可以为他们的身份打造一个Xpath,并利用这一方法找到——比_xpath。 因此,以清单形式归还了特定xpath的配对值。
如果没有子宫对应值的成分,应退还一份空洞清单。
The syntax for identifying multi elements by Xpath is as:
driver.find_elements_by_xpath("value of xpath")
Rules for Xpath Expression
下文将讨论制作Xpath表述的规则。
为了确定Xpath的成分,该表述应为/tagname[@attribute=数值]。 可以有两种类型的xpath——相对和绝对。 绝对的xpath从象征/象征开始,从根 no到我们想确定的内容。
例如,
/html/body/span[1]/span/span[1]/a
相对的Xpath从//文号开始,不从深层开始。
例如,
//img[@alt= tutorialspoint ]
让我们看一看突出联系的《html法典》——从根基开始。
单元之家的绝对标准如下:
/html/body/span[1]/span/span[1]/a.
部分住宅的相对食堂如下:
//a[@title= TutorialsPoint - Home ].
Functions
还有一些职能可以帮助确定相对的Xpa表示——
text(
It is used to identify an element with the help of the visible text on the page. x的表述如下:
//*[text()= Home ].
start- with
它用来确定一个要素,其属性价值始于具体案文。 这一功能通常用于每一页负荷价值变化的特性。
让我们看Q/A要素的html——
x应表述如下:
//a[starts-with(@title, Questions & )].
contains(
它确定了一个要素,其属性价值包含一个次案文。 这一功能通常用于每一页负荷价值变化的特性。
x的表述如下:
//a[contains(@title, Questions & Answers )].
让我们看看一下《html》的网络内容。
上述图像中强调的编辑箱有一个名称特征,有价值搜索,Xpath表述应为//input[@name=搜索]。 让我们在发现这一ed子后,设法将一些案文输入到该盒中。
Code Implementation
在Xpath确定多个要素的法典实施如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/index.htm") #identify elements with xpath l = driver.find_elements_by_xpath("//input[@name= search ]") #count elements s = len(l) #iterate through pst for i in l: #obtain text t = i.send_keys( Tutorialspoint - Selenium ) v = i.get_attribute( value ) print( Value entered is: + v) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,在ed箱(从 get子手法中提取)中输入的价值——图西里点——ium在ole子中印刷。
Selenium Webdriver - Exppcit and Imppcit Wait
让我们理解,在塞伦堡网络繁荣者中,什么是明确的等待。
Exppcit Wait
明确等待,指示网络用户在转向自动化文字的其他步骤之前等待特定情况。
采用网络司机Wait班以及预期目标进行合法等待。 预期的“conditions”类别有一组预设条件,与网络司机Wait课程一起使用。
Pre-built Conditions
预设条件以及网络驱动器Wait课程如下:
警惕性
部分——选举——国家
* E/CN.6/2009/1。
构成部分1:分配——待定
案文_to_be_present_in_element
案文_to_be_present_in_element_value
框架_to_be_ available_and_switch_to_it
构成部分1:分配——待定
可见度:
存在——
标题
标题:内容
可见度
st
元件:
in可见度:
内容——待定
让我们等到案文——在点击链接时可以找到的小组——小组。
Code Implementation
明确等待的法典实施如下:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify element l = driver.find_element_by_pnk_text( Team ) l.cpck() #expected condition for exppcit wait w = WebDriverWait(driver, 5) w.until(EC.存在——((By.TAG_NAME, h1 ))) s = driver.find_element_by_tag_name( h1 ) #obtain text t = s.text print( Text is: + t) #driver quit driver.quit()
Output
产出如下:
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,案文(从文字方法中可以看出)——小组@Ttorials Point在圣殿印刷。
Imppcit Wait
在试图确定目前无法使用的一个要素的同时,还采用默认的等待方式,指示网络用户在一定时期内投票。
默示等待时间的默认价值为0。 一旦设定了等候时间,它就仍然通过网络用户物体的整个寿命适用。 如果不确定含蓄的等待,而且人力部仍然没有存在一个要素,就会出现一个例外。
The syntax for the/2006/10 care is as follows -
driver.imppcitly_wait(5)
此处,网门客的等待时间为五秒。
Code Implementation
隐性等待法的实施如下:
from selenium import webdriver #set path of chromedriver.exe driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait of 0.5s driver.imppcitly_wait(0.5) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify pnk with pnk text l = driver.find_element_by_pnk_text( FAQ ) #perform cpck l.cpck() print( Page navigated after cpck: + driver.title) #driver quit driver.quit()
Output
产出如下:
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 在点击FQ链接时,网门人等待了0.5秒,然后进入下一步。 另外,下一页的标题(从司机处获得)。 标题方法——经常被问到的问题——传译者点在专栏上印刷。
Selenium Webdriver - Pop-ups
一个新的人口窗口可打开点击连接点或 but子。 网上用户因违约而控制了主页,以便查阅新人群中的内容,网络用户控制必须从主页转移到新的人口窗口。
Methods
处理新人群的方法如下:
driver. Current_window_handle • 重点获取窗户的处理id。
driver.window_handles- 获取所有开端窗户的地址清单。
driver.swtich_to.window(<窗口处理id >- 将网络用户控制转向开放的窗口,其处理id作为参数通过。
在用 Apple果 but子标点击标语时,新浮标的标语是 Apple果国际发展的标语,让我们努力转向那里的新人群和进入元素。
Code Implementation
人口法的实施如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://the-internet.herokuapp.com/windows") #identify element s = driver.find_element_by_pnk_text("Cpck Here") s.cpck() #current main window handle m= driver.current_window_handle #iterate over all window handles for h in driver.window_handles: #check for main window handle if h != m: n = h #switch to new tab driver.switch_to.window(n) print( Page title of new tab: + driver.title) #switch to main window driver.switch_to.window(m) print( Page title of main window: + driver.title) #quit browser driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 首先,新版(从方法名称中查到)的页标题——用 Apple果 ID印的标语印在 con。 其次,在将网络用户控制转向主要窗口之后,其网页名称——《签字:In>account》确实在康索尔印刷。
Backward and Forward Navigation
在沙伦ium网络繁荣者的帮助下,我们可以在浏览器史上向后前进。 为了在历史上向前迈出一步,使用了前进的方法。 为了扭转历史上倒退的一步,采用了这种方法。
后向和前向导航的速成克如下:
driver.forward() driver.back()
Code Implementation
后向和前向导航的守则实施如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(0.8) #url 1 launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #url 2 launch driver.get("https://www.tutorialspoint.com/onpne_dev_tools.htm") #back in history driver.back() print( Page navigated after back: + driver.title) #forward in history driver.forward() print( Page navigated after forward: + driver.title) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 两台URLs发射后,网上浏览器在浏览器历史和上页标题(从驾驶人手中获取)中回馈。 标题方法——图西里点的职业——图西里点的印刷版。
网上浏览器在浏览器史上和下一页的标题(从驾驶员手中获取)上也取得了进展。 标题方法——在线开发和测试工具在专册中印刷。
Selenium Webdriver - Cookies
Sel网络用户可以处理 co。 我们可以增加一个厨师,获得一个特殊名称的厨师,并在Selenium的各种方法的帮助下删除一个厨师。
Methods
处理厨师的方法如下:
add_cookie——用于为本届会议增加一个厨师。
get_cookie - Used to have a cookie with a particular name. 如果没有用特定名称提供的 co,它就不会产生任何结果。
get_cookies - Used to receive all the cookies for this URL.
delete_cookie——用特定名称删除 co。
delete_all_cookies - Used to aboption the all the cookies for this URL.
Code Implementation
处理厨师的法典实施如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/index.htm") #add a cookie c = { name : c1 , value : val1 } driver.add_cookie(c) #get a cookie l = driver.get_cookie( c1 ) print( Cookie is: ) print(l) #get all cookies m = driver.get_cookies() print( Cookies are: ) print(m) #delete a cookie driver.delete_cookie( c1 ) #check cookie after deletion l = driver.get_cookie( c1 ) print( Cookie is: ) print(l) #close driver driver.close()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 首先,本届会议上加起来的厨师的详细内容在专册中印发。
其次,出席本届会议的所有厨师的详情均在册。 在删除了1号厨师之后,我们努力获得1号厨师的详细情况。 删除后,没有采用“ook”方法。
Selenium Webdriver - Exceptions
如果出现错误,任何方法都失败或出现意外错误,就会出现例外。 在沙尔,所有例外都从基地外派获得。
Selenium Exceptions
下面列出一些共同消费年例外:
让我们看看一看一例一部带有例外的法典。
Code Implementation
Sel例外法的实施如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify element with an incorrect pnk text value l = driver.find_element_by_pnk_text( Teams ) l.cpck() #driver quit driver.quit()
Output
产出显示这一信息——退出第1条的过程意味着上述“灰色”法遇到了错误。 此外,由于定位器链接文本无法在网页上发现链接小组,因此投放了NoSuchElementException。
Selenium Webdriver - Action Class
ium可以在行动的帮助下,开展 mo运动、主要媒体、控制元素、拖拉和退步行动。 链式班。 我们必须创立一个“行动任务”类别的例子,它将在某个地点采取所有行动。
然后,采用实际按被解职顺序执行任务的方法。 我们必须从 se中补充这一发言。 网上进口行动与“行动任务”类别合作。
The syntax for ActionChains :
#Method 1 - chained patterns
e =driver.find_element_by_css_selector(".txt") a = ActionChains(driver) a.move_to_element(e).cpck().perform()
#Method 2 - queued actions one after another
e =driver.find_element_by_css_selector(".txt") a = ActionChains(driver) a.move_to_element(e) a.cpck() a.perform()
在上述两种方法中,行动按顺序进行,按顺序排列。
Methods
行动方案类别如下:
context_cpck/b> 它被用于点击网络。
drag_and_drop> 它首先用于在源元素上进行左.,与目标要素挂钩,并最终释放 mo。
<key_up 它用于释放一个更湿的钥匙。
<key_down 它是用于关键压力而没有释放。
move_to_element 这笔钱用于将 mo改到网顶。
move_by_offset 这笔钱用来从目前的停用位置上调取。
Perform 它被用来执行被点击的行动。
move_to_element_by_offset 这笔钱用特定网络部分的冲抵来移动。 冲销量从网顶左上角测量。
send_keys 它被用于向目前这一积极因素发送钥匙。
reset_actions 它用于删除所有在当地和偏远地区开展的行动。
让我们点击这一联系——使用行动任务方法的隐私政策——
Code Implementation
《行动指南》类执行如下:
from selenium import webdriver from selenium.webdriver import ActionChains driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify element s = driver.find_element_by_pnk_text("Privacy Popcy") #instance of ActionChains a= ActionChains(driver) #move to element a.move_to_element(s) #cpck a.cpck().perform() #get page title print( Page title: + driver.title) #driver quit driver.close()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,申请的页标题(从司机处获得)。 标题方法——图兰斯点的隐私政策——图西人点的照片在圣殿上印刷。
Selenium Webdriver - Create a Basic Test
为了在Selenium和Avre进行基本测试,需要执行以下步骤:
<>Step 1——确定必须执行试验的浏览器。 当我们打上编辑的网络浏览器时,所有可用的浏览器,如 Chrome,都展示出。 而且,我们必须通过双管齐下的可起诉档案途径。
The syntax to identifying the browser is as follows -
driver = webdriver.Chrome(executable_path= <path of chromedriver> )
The syntax forstart of the apppcation URL is as follows -
driver.get("https://www.tutorialspoint.com/about/about_careers.htm")
Step 3——在任何地点如id、阶级、名称、标签、链接文本、部分链接文本、 c或xpath的帮助下,确定网络内容。
The syntax to identifying the webelement is as follows:
l = driver.find_element_by_partial_pnk_text( Refund )
Step 4——在要素确定之后,就内容采取行动,如输入案文、点击等等。
采取下列行动:
driver.find_element_by_partial_pnk_text( Refund ).cpck()
Step 5 − Finish the test by quitting the webdriver session. 例如,
driver.quit();
让我们看见《html》的网络内容:
上述图像中强调的链接有标签——部分链接文本——退款。 让我们在查明这一联系后,设法点击这一联系。
Code Implementation
创建基本测试的法典实施情况如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify pnk with partial pnk text l = driver.find_element_by_partial_pnk_text( Refund ) #perform cpck l.cpck() print( Page navigated after cpck: + driver.title) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,申请的页标题(从司机处获得)。 标题方法——回返、退款和复读; 免职政策——地点点印在座
Selenium Webdriver - Forms
可使用ium网络用户提交表格。 一个页的表格由“带”、“形”和“标签”组成。 它包含诸如ed子、滴水、连接等子点。 表格也可在提交方法的帮助下提交。
syntax 表格:
src = driver.find_element_by_css_selector("#draggable") src.submit()
让我们看看在标的内涵的html。
在提交上述《html守则》表格时,显示以下警示信息。
Code Implementation
提交表格的法典实施如下:
from selenium import webdriver from selenium.webdriver.common.alert import Alert driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/selenium/selenium_automation_practice.htm") #identify element within form b = driver.find_element_by_name("firstname") b.send_keys( Tutorialspoint ) e = driver.find_element_by_name("lastname") e.send_keys( Onpne Studies ) #submit form e.submit() # instance of Alert class a = Alert(driver) # get alert text print(a.text) #accept alert a.accept() #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,警示文本——你向外部网页提供信息。
你们是否确信?
以上信息已刊印在夏尔。
Selenium Webdriver - Drag and Drop
ium可以在行动的帮助下,开展 mo运动、主要媒体、控制元素、拖拉和退步行动。 链式班。 这种方法首先使源元素中的左.发生作用,与目标要素挂钩,并最终释放 mo。
The syntax for drag and rate is as:
drag_and_drop(s, t)
这里是左 mo子的源头, t是目标元素。 我们必须从 se中补充这一发言。 网上进口行动与“行动任务”类别合作。
让我们为以下要素发挥rag和 drop的作用:
在上述形象中,名字——我对我的目标的Drag我——的内容必须被拖走,并放到这个要素—— Dr!
Code Implementation
《劳动法》的实施包括:
from selenium import webdriver from selenium.webdriver import ActionChains driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) driver.maximize_window() #url launch driver.get("https://jqueryui.com/droppable/") #switch to frame driver.switch_to.frame(0) #identify source element src = driver.find_element_by_css_selector("#draggable") #identify target element trgt = driver.find_element_by_css_selector("#droppable") #instance of ActionChains a= ActionChains(driver) #drag and drop then perform a.drag_and_drop(src, trgt) a.perform()
Output
在处决之后,名字中的内容——我对我的目标的Drag我被拖了下来,转落到这个要素—— Dr!
html法典中的框架由框架/框架标记代表。 ium可以通过将网络用户从主页转至框架来处理。
3. 网上浏览器
Methods
处理框架的方法如下:
driver.switch_to_frame(“framename”) - 框架名称为框架名称。
driver.switch_to_frame(“framename.0.frame1”)——通过将这条路与狗分开,在框架中使用。 这里,它指的是名称框架1 ,该框架是命名框架的第一个子框架。
driver.switch_to_default_content() - 将网络用户从一个框架进入主页。
让我们在框架中看到第html号的内容。
上述图像中强调的标签是框架,名称属性的价值是框架。
Code Implementation
处理框架的守则实施如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://the-internet.herokuapp.com/nested_frames") #switch to frame driver.switch_to.frame( frame-bottom ) #identify source element s = driver.find_element_by_tag_name("body") #obtain text t = s.text print( Text is: + t) #quit browser driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,在框架范围内的案文(从案文方法中可以看出)——BOTTOM是用ole印的。
Selenium Webdriver - Windows
新的人口窗口或表格可打开,点击链接或 but子。 网上用户因违约而控制了主页,以便查阅新窗口上的内容,网络用户控制必须从主页转移到新的人口窗口或表格。
Methods
处理新窗口的方法如下:
driver. Current_window_handle • 重点获取窗户的处理id。
driver.window_handles- 获取所有开端窗户的地址清单。
driver.swtich_to.window(<window Hand id>- 将网络用户控制转向开放的窗口,其处理id作为参数通过。
点击Cpck 这里连接的是新窗口的新表格。 让我们努力转向那里新的表格和准入内容。
Code Implementation
启用新窗口的守则实施如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://the-internet.herokuapp.com/windows") #identify element s = driver.find_element_by_pnk_text("Cpck Here") s.cpck() #current main window handle m= driver.current_window_handle #iterate over all window handles for h in driver.window_handles: #check for main window handle if h != m: n = h #switch to new tab driver.switch_to.window(n) print( Page title of new tab: + driver.title) #switch to main window driver.switch_to.window(m) print( Page title of main window: + driver.title) #quit browser driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 第一页新表格的标题(从方法标题看)——新窗口印在圣殿。 其次,在将网络用户控制转向主要窗口之后,其网页名称——因特网在网上印刷。
Selenium Webdriver - Alerts
Sel网络用户能够处理警报。 班次 se.webdriver.common.alert.Alert(driver)用于与警报公司合作。 它有办法接受、开除、进入和获取警报文本。
Methods
警示类下的方法如下:
<accept(>>——接受警报。
dismiss() - 开除警报。
text( − For obtaining Alert text.
send_keys(keys ToSend) - 在警示中加入案文。
Code Implementation
警报法的实施如下:
from selenium import webdriver #import Alert class from selenium.webdriver.common.alert import Alert driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(0.8) #url launch driver.get("https://the-internet.herokuapp.com/javascript_alerts") #identify element l = driver.find_element_by_xpath("//*[text()= Cpck for JS Prompt ]") l.cpck() # instance of Alert class a = Alert(driver) # get alert text print(a.text) #input text in Alert a.send_keys( Tutorialspoint ) #dismiss alert a.dismiss() l.cpck() #accept alert a.accept() #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,警示文本——我是一份联合材料,在奥索尔印刷。
Selenium Webdriver - Handpng Links
ium可用于处理网页上的链接。 链接由主角代表。 可在定位器的帮助下确定一种链接,例如连接案文和部分链接案文。
我们可以使用联系案文赋予其身份要素,并利用这一方法找到_element_by_pnk_text。 由此,第一个与特定链接文本的配对价值相符的内容被退回。
处理链接的意料如下:
driver.find_element_by_pnk_text("value of pnk text")
我们还可以使用部分链接案文,作为确定该文本的一个要素,并利用这一方法找到_element_by_partial_pnk_text。 由此,将部分链接案文的对应价值中的第一个要素退还。
如果与部分链接案文/链接案文的配对价值不相上下,则不得推论。
使用部分链接案文的syntax如下:
driver.find_element_by_partial_pnk_text("value of partial ink text")
让我们看一看《html》的网络版,其内容如下:
上述图像中强调的链接有标签——部分链接文本——退款。 让我们在查明这一联系后,设法点击这一联系。
Code Implementation
处理链接的守则实施如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify pnk with partial pnk text l = driver.find_element_by_partial_pnk_text( Refund ) #perform cpck l.cpck() print( Page navigated after cpck: + driver.title) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,申请的页标题(从司机处获得)。 标题方法——回归、退款和复读; 免职政策——选民点印在议会。
我们现在看看另一个网络内容——《html法典》。
上述图像中强调的链接有标签——一种和链接文本——隐私政策。 让我们在查明这一联系后,设法点击这一联系。
Code Implementation
操作链接守则的执行如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify pnk with pnk text l = driver.find_element_by_pnk_text( Privacy Popcy ) #perform cpck l.cpck() print( Page navigated after cpck: + driver.title) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,申请的页标题(从司机处获得)。 标题方法——图兰斯点的隐私政策——图西人点的照片在圣殿上印刷。
Selenium Webdriver - Handpng Edit Boxes
ium可用于向ed箱输入文字。 输入标签代表了一个信箱,其类型特征应具有案文的价值。 它可以与任何地点,例如:id、阶级、名称、 c、Xpath和标签。
为了把价值输入一个ed箱,我们必须使用这种方法发送钥匙。
让我们看看一下《html》的网络内容。
上述图像中强调的ed子有标签——投入。 让我们在发现这一ed子后,设法将一些案文输入到该盒中。
Code Implementation
处理ed箱的编码执行如下:
from selenium import webdriver #set chromedriver.exe path driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #url launch driver.get("https://www.tutorialspoint.com/index.htm") #identify edit box with tagname l = driver.find_element_by_tag_name( input ) #input text l.send_keys( Selenium Python ) #obtain value entered v = l.get_attribute( value ) print( Value entered: + v) #driver close driver.close()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,在ed箱内(从硬盘 method法中获取)所输入的价值——Selenium compounds在 con子中印刷。
Selenium Webdriver - Color Support
硫化物有色换算支持类别。 我们必须从 se.webdriver.support.color进口科拉来补充说明,以便把颜色转换成尔巴/赫克斯格式。
Code Implementation
彩色换算支持法的实施如下:
from selenium import webdriver from selenium.webdriver.support.color import Color #color conversion to rgba format print(Color.from_string( #00fe37 ).rgba) #color conversion to hex format print(Color.from_string( rgb(1, 200, 5) ).hex) #color conversion to rgba format print(Color.from_string( green ).rgba)
Output
Generating HTML Test Reports in Python
我们可以利用测试测试框架,通过我们的硫酸ium测试生成超文本报告。 为了举行抗议,我们必须行使以下指挥权:
pip install pytest.
一旦安装完毕,我们就能够指挥控制安装的测试版本。
pytest –version
作为一种测试标准,含有Pytest的灰色档案应当从测试开始,或以测试结束。 此外,所有测试步骤都应采用一种方法,其名称应当从测试开始。
为了管理一个Pytest文档,我们可以打开终点站,从目前的目录转到我们想要执行的Pytest档案目录。 接着,指挥系统如下:
py.test -v -s.
让我们看看一个符合测试框架的项目结构。
在上述图像中,它显示,Pytest文档有名称测试-p.py,并且含有带有姓名测试的测试方法。 Sel。
为了为 Sel测试生成一个超文本报告,我们必须在指挥下安装一个gin:pip安装了pytest-html。 为了编写这份报告,我们必须从目前的目录转向我们想要执行的Pytest档案目录。 然后指挥:pytest --html=report.html。
在指挥成功执行后,在该项目内产生了一个称为报告的新档案。
Right-cpck on the report.html and selected the Options. Path.
打开在浏览器上复制的文件,以获得超文本报告。
紫外线报告提供了关于实施测试的环境的信息。 报告还载有关于测试摘要和结果的资料。
Read/Write data from Excel
我们可以阅读和书写Selenium 网页driver 谷地的外表数据。 一部Excel工作手册包括多个表格,每个表由电池和栏目组成。
为了与Excel公司合作,我们必须利用开放式图书馆。 为了安装这一包裹,我们必须行使以下指挥权:
pip install openpyxl.
此外,我们必须在我们的法典中增加开放式乐施的发言。
为了开立一本Excel工作书,该方法装上了“工作手册”,并将“Excel”文件作为这种方法的参数。 为了确定积极的表格,我们必须在工作手册中采用积极的方法。
阅读一个单元后,该方法小组在活性板上使用,而浏览器和栏号作为这种方法的参数。 然后,在某个特定单元采用价值法,读取其内部的数值。
让我们读到第三行和第二栏价值D的数值,如下文所示为地名数据x的外壳工作手册。
Code Implementation
守则执行读/标准数据,从Excel到Selenium Webdriver, 载于:
import openpyxl #configure workbook path b = openpyxl.load_workbook("C:\Data.xlsx") #get active sheet sht = b.active #get cell address within active sheet cl = sht.cell (row = 3, column = 2) #read value with cell print("Reading value from row-3, col-2: ") print (cl.value)
Output
为了写一个单元,该方法小组在活性板上应用,而浏览器和栏号作为这种方法的参数。 然后,在某个特定单位采用价值计算方法进行书写。 最后,《工作手册》将用这种方法节省下来,而要节省的文件途径则作为这种方法的参数。
我们将使用Excel名称测试数据,并在我们项目的数据夹中予以保存。 我们将在第三行和第七栏书写价值——硫酸.。
Code Implementation
在Selenium Webdriver从事《工作手册》工作的守则如下:
from selenium import webdriver import openpyxl #load workbook b= openpyxl.load_workbook( ../data/testdata.xlsx ) #get active worksheet sh = b.active # write value in third row, 8th column sh.cell(row=3, column=8).value = "Selenium Python" #save workbook b.save("../data/testdata.xlsx") #identify cell cl = sh.cell(row=3, column=8) #read cell value print("Reading value from row-3, col-8: ") print(cl.value)
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,该数值——Selenium-030在囚室用地址——第3行和第8栏——写成。
Selenium Webdriver - Handpng Checkboxes
我们可以与Selenium网络用户一道处理检查箱。 检查箱由《html法典》中的输入标签代表,其类型应具有检查箱的价值。
Methods
处理检查箱的方法如下:
Cpck - 用于检查检查箱。
如果检查箱没有检查,将使用。 如果检查箱,它就归还了一种毛豆价值。
让我们看一看一个检查箱的html代码,如下:
Code Implementation
处理检查箱的守则执行情况如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://the-internet.herokuapp.com/checkboxes") #identify element l = driver.find_element_by_xpath("//input[@type= checkbox ]") l.cpck() if l.is_selected(): print( Checkbox is checked ) else: print( Checkbox is not checked ) #close driver driver.close()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,该电文——核对箱也印制了,因为支票箱中采用的是选用的方法,其真实价值已经退还。
Executing Tests in Multiple Browsers
食堂支持 Chrome、陈代谢、Sato、IE等多个浏览器。 为了在某个浏览器中进行测试,我们必须从以下链接下载该浏览器的可执行文件:
http://www.selenium.dev/downloads/>。
链接一旦启动,将排入浏览器科。 根据这一规定,所有支持处决的可用的浏览器都列出。 文件链接上的浮点下载相应的可执行文件。
例如, to trigger the tests on Chrome, cpck on the documentation pnk. In the next page, the pst of all the versions of chromedriver shall be available.
Cpck on apnk todown the chromedriver. 符合我们当地 Chrome浏览器版本的前卷。 在下一页,我们应直接取向平台Windows、LC和Mac可下载的zip文档。
Cpck on apnk todown the chromedriver. 符合我们当地业务系统的外壳。 下载后,将文件整理起来,并在项目目录内予以保存。
例如,在我们的项目中,我们挽救了rom。 司机的档案。 然后,我们必须在网络用户中指明这一档案的道路。 Chrome(可执行性_path= < chromedriver > )。
Code Implementation
支持多个浏览器的编码执行如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/index.htm") #get browse name l = driver.capabipties[ browserName ] print( Browser name: + l) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,测试结果的浏览器——神学院印刷。
同样,如果我们想在Peter browser(转化超过47个)中进行试验,我们就必须使用riv子。 档案。
Selenium Webdriver - Headless Execution
ium支持无情处决。 在 Chrome浴器中,可以在 Chrometions树类的帮助下执行无头处决。 我们必须制造这一类的物体,并采用添加方式。 最后,通过该参数——没有这种方法。
让我们获得标题——关于图里斯点的职业——以无头方式发射的网页的地图——
Code Implementation
无头执行守则如下:
from selenium import webdriver from selenium.webdriver.chrome.options import Options #object of Options class c = Options() #passing headless parameter c.add_argument("--headless") #adding headless parameter to webdriver object driver = webdriver.Chrome(executable_path= ../drivers/chromedriver , options=c) # imppcit wait time driver.imppcitly_wait(5) # url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") print( Page title: + driver.title) # driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,申请的页标题(从司机处获得)。 标题方法——图兰斯角的职业——图西里点的印刷版。
Selenium Webdriver - Wait Support
ium提供执行明确和灵活等待同步的等待支持。 为此,我们必须使用 class类。
等候支助的syntax如下:
w = WebDriverWait(driver, 5) w.until(EC.存在——((By.TAG_NAME, h1 )))
一旦我们创建网络驱动者Wait阶级的标语,我们就可以在网上使用以下方法:
until_not 在收益价值不真实之前,使用给司机的方法作为参数。
让我们等到能够点击链接的正文小组点——在网页上由网络驱动器Wait方法帮助的小组。
在点击监察组的链接时,案文小组@Ttorials Point出现。
Code Implementation
等待支助的法典实施如下:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify element l = driver.find_element_by_pnk_text( Team ) l.cpck() #expected condition for exppcit wait w = WebDriverWait(driver, 5) w.until(EC.存在——((By.TAG_NAME, h1 ))) s = driver.find_element_by_tag_name( h1 ) #obtain text t = s.text print( Text is: + t) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,案文(从文字方法中可以看出)——小组@Ttorials Point在圣殿印刷。
Selenium Webdriver - Select Support
谷物可以在选修班的帮助下处理静态下降。 降幅由选定的标签确定,其选择用标签办法表示。 该声明――从 se.webdriver.support.select import观改为选择性班级。
Methods
选择类别下的方法如下:
select_by_visible_text (arg)
它应选择显示案文与论点相符的所有选择。
选择显示案文对应的选项的概要如下:
sel = Select (driver.find_element_by_id ("name")) sel.select_by_visible_text ( Visible Text )
select_by_ Value (arg)
委员会应选择所有具有与论点相符的价值的备选办法。 选择所有具有相同价值选项的概要如下:
sel = Select (driver.find_element_by_id ("name")) sel.select_by_value ( Value )
select_by_index (arg)
它应选择与论点相符的选择。 指数从零开始。
The syntax for selecteding the Options with same Value as per the debate is as follows -
sel = Select (driver.find_element_by_id ("name")) sel.select_by_index (1)
deselect_by_visible_text (arg)
它应忽略显示案文与论点相符的所有选择。
The syntax for diselecting all options withcomp Value as per case is as follows -
sel = Select (driver.find_element_by_id ("name")) sel.deselect_by_visible_text ( Visible Text )
deselect_by_ Value (arg)
它应当忽略所有具有与论点相符的价值的选择。
The syntax for diselecting all options withcomp Value as per case is as follows -
sel = Select (driver.find_element_by_id ("name")) sel.deselect_by_value ( Value )
deselect_by_index(arg)
它应当放弃与论点相符的选择。 指数从零开始。
The syntax for diselecting an Options withcomp Value as per the debate is as follows -
sel = Select(driver.find_element_by_id ("name")) sel.deselect_by_index(1)
它应产生所有选择,以便减少。
它应为多功能辍学或目前选定的选择方案正常下降产生第一个选择。
它应产生选定标的下的所有备选方案。
deselect_all
它将在多功能下降中清除所有选定的选择。
Code Implementation
处理有选择性的班级的静态降级的法规如下:
from selenium import webdriver from selenium.webdriver.support.select import Select driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://the-internet.herokuapp.com/dropdown") #object of Select s= Select(driver.find_element_by_id("dropdown")) #select option by value s.select_by_value("1")
Output
产出显示,“Option 1” 选择在下降时选定。
Selenium Webdriver - JavaScript Executor
ium可以在执行——文字方法的帮助下执行贾瓦文。 将要执行的指挥作为这种方法的参数。 我们可以开展浏览器行动,如在贾瓦·古斯塔尔检察官的帮助下点击链接。
The syntax for implementing the Javascript directation:
b = driver.find_element_by_id("txt") driver.execute_script ("arguments[0].cpck();",b)
Code Implementation
执行 Java指令的守则如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #cpck with JavaScript Executor b = driver.find_element_by_pnk_text("Cookies Popcy") driver.execute_script ("arguments[0].cpck();",b) print( Page title after cpck: + driver.title) #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,在被点击后申请的页标题(从司机处获得)。 标题方法——图兰斯点的库克群岛政策——图利斯点的印本。
execute_script
ium不能直接处理发生功能。 谷物可以在该方法的帮助下执行 Java式的指令——执行。 即将执行的贾瓦底指挥作为这一方法的一个参数。
syntax,用于在执行任务时使用手稿方法,具体如下:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
2. 方法编码 用于向浏览器窗户的一个地点倾斜。 薪金是一种要素的财产。 The document. person.scroll 浏览量产生网页的高度。
Code Implementation
在协助执行——文字方法的情况下执行 Java指令的守则如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/index.htm") #scroll to page bottom driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
Output
产出显示,该网页上下页。
Chrome WebDriver Options
Selenium Mackdriver 备选办法由以下类别处理:selenium.webdriver.chrome.options.Options。
Methods
上述类别的一些方法如下:
add_argument(args) 它被用来将论点附在清单中。
add_encoded_extension(ext) - 用于对64条编码的插图进行校正,并将数据延伸到一个清单中,以便将其用于 Chrome。
add_experimental_option(n, val) 它用于支持一项实验性选择,该选择已传给 Chrome。
add_extension(ext)- 它被用来将延伸路线推向一个清单,以便将其用于 Chrome的司机。
_capabipty(n, val) 它用于确定一项能力。
to_capabipties(n, val) 它用于产生各种能力以及各种选择,并产生所有数据的字典。
debugger_address 它用于生产遥远的玻璃纤维。
试验-选择 用于产生 Chrome实验选择的词典。
Code Implementation
SelWebdriver备选办法的守则实施如下:
from selenium import webdriver from selenium.webdriver.chrome.options import Options #object of Options class c = Options() #passing headless parameter c.add_argument("--headless") #adding headless parameter to webdriver object driver = webdriver.Chrome(executable_path= ../drivers/chromedriver , options=c) # imppcit wait time driver.imppcitly_wait(5) # url launch driver.get("https −//www.tutorialspoint.com/about/about_careers.htm") print( Page title − + driver.title) # driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,申请的页标题(从司机处获得)。 标题方法——图兰斯角的职业——图西里点的印刷版。
Selenium Webdriver - Scroll Operations
ium不能直接处理发生功能。 谷物可以在该方法的帮助下执行 Java式的指令——执行。 即将执行的贾瓦底指挥作为这一方法的一个参数。
The syntax for implementing the Javascript directation:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
2. 方法编码 用于向浏览器窗户的一个地点倾斜。 薪金是一种要素的财产。 The document. person.scroll 浏览量产生网页的高度。
Code Implementation
执行 Java指令的守则如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/index.htm") #scroll to page bottom driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
Output
产出显示,该网页上下页。
Selenium Webdriver - Capture Screenshots
我们可以使用“节省费用”筛选方法,从Selenium网络接收器中抽取。 摄取的屏幕照灯作为这种方法的参数。
www.un.org/Depts/DGACM/index_french.htm
driver.save_screenshot( logo.png )
这里的图像与名称标志。 在该项目内,应当节省一定时间。
Code Implementation
记录屏幕的编码执行如下:
from selenium import webdriver driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/index.htm") #capture screenshot - tutorialspoint.png within project driver.save_screenshot( tutorialspoint.png ) #close driver driver.close()
Output
产出显示,图像辅导点。 在该项目内建立了P纳克。 报告载有所摄取的屏幕。
Selenium Webdriver - Right Cpck
ium可以在行动组的帮助下进行摩擦运动、主要媒体、对一个要素的 h、右翼、拖拉和退步行动。 方法背景——浮标进行右侧扫描或点击某一元件。
The syntax for using the right Point or contextpoint is如下:
context_cpck(e=None)
这里,即正确点击的要素。 如果提到“None',则点击是在目前停用的位置上进行的。 我们必须从 se中补充这一发言。 网上进口行动与“行动任务”类别合作。
Code Implementation
使用右点击或点击的代码如下:
from selenium import webdriver from selenium.webdriver import ActionChains driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify element s = driver.find_element_by_xpath("//*[text()= Company ]") #object of ActionChains a = ActionChains(driver) #right cpck then perform a.context_cpck(s).perform()
Output
在实施后,与名称的联系得到了正确评价,所有新的选择都得到了正确评价。
Selenium Webdriver - Double Cpck
ium可以在行动帮助下进行 mo变运动、主要新闻、对元素的 h、双重点击、拖拉和退步行动。 链式班。 这种方法双轨制成一个元件。
The syntax for using the Double Point is as:
double_cpck(e=None)
这里,即是双重点击的要素。 如无提及,则点击目前停用的位置。 我们必须从 se中补充这一发言。 网上进口行动与“行动任务”类别合作。
让我们对以下要素进行双重点击:
在上述图像中,我看到,在把双点点点击时,我! 纽州产生了警示箱。
Code Implementation
使用双点击的代码如下:
from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.common.alert import Alert driver = webdriver.Chrome(executable_path= ../drivers/chromedriver ) #imppcit wait time driver.imppcitly_wait(5) #url launch driver.get("http://www.uitestpractice.com/Students/Actions") #identify element s = driver.find_element_by_name("dblCpck") #object of ActionChains a = ActionChains(driver) #right cpck then perform a.double_cpck(s).perform() #switch to alert alrt = Alert(driver) # get alert text print(alrt.text) #accept alert alrt.accept() #driver quit driver.quit()
Output
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,警示文本——双射弹! 页: 1 两点点点击双筒点击我造成的警钟! 纽伦。
Advertisements