- 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是否定性归属的价值]。
标语的表述形式应为标签。 班级。 例如,投入。
如果父母中有一生子女,而且我们要确定哪一个孩子,那么这种表达方式就应该有哪一种类型。
![CSS Expression](/selenium_webdriver/images/css_expression.jpg)
在上述法典中,如果我们想确定第四种幼童[问答],那么这种表达方式就应当加以表述。 同样,为了确定最后一名儿童,应当表达这些孩子。 阅读:最后孩子。
对于价值观正在动态变化的属性,我们可以使用^=确定某一要素,其属性价值始于某一特定案文。 例如,投入[名称= qa] 在这方面,投入是标的,其名称价值从qa开始。
对于价值观正在动态变化的属性,我们可以使用并使用美元;=确定某一要素,其属性价值以特定案文为目的。 例如,投入[类别和数量;美元;txt] 这里,投入是标签和类别属性价值,以tx告终。
对于价值不断变化的特点,我们可以使用*来确定一个特性价值包含具体次案文的内容。 例如,投入[名称* = nam] 在此,投入是标的,名词的价值包含次案文名称。
让我们看见以下的《html》网络内容。
![Web Elements](/selenium_webdriver/images/web_elements.jpg)
上述图像中强调的编辑箱有一个名称特征,可进行价值检索,标语应当为投入[名称=搜索]。 让我们在发现这一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
![Selenium Python](/selenium_webdriver/images/selenium_python.jpg)
产出显示了这一信息——退出代码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法典》——从根基开始。
![Highpghted Link](/selenium_webdriver/images/highpghted_pnk.jpg)
这一要素的绝对标准如下:
/html/body/span[1]/span/span[1]/a.
部分住宅的相对食堂如下:
//a[@title= TutorialsPoint - Home ].
![Home Tab](/selenium_webdriver/images/home_tab.jpg)
Functions
还有一些职能有助于制定相对的Xpath表述。
text(
用来确定一个内容及其可见的文本。 x的表述如下:
//*[text()= Home ].
![Functions](/selenium_webdriver/images/functions.jpg)
start- with
它用来确定一个要素,其属性价值始于具体案文。 这一功能通常用于每一页负荷价值变化的特性。
让我们看到Q/A链接的html。
![Xpath Expression](/selenium_webdriver/images/xpath_expression.jpg)
x应表述如下:
//a[starts-with(@title, Questions & )].
![Starts With](/selenium_webdriver/images/starts_with.jpg)
contains(
它确定了一个要素,其属性价值包含一个次案文。 这一功能通常用于每一页负荷价值变化的特性。
x的表述如下:
//a[contains(@title, Questions & Answers )].
![Contains](/selenium_webdriver/images/contains.jpg)
让我们看一看《html》的网络版,如下文所示。
![Edit Box Highpghted](/selenium_webdriver/images/edit_box_highpghted.jpg)
上述图像中强调的编辑箱有一个名称特征,有价值搜索,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
![Console](/selenium_webdriver/images/console.jpg)
产出显示了这一信息——退出代码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》中给出的等级归属的名人。
![Toc Chapters](/selenium_webdriver/images/toc_chapters.jpg)
上述形象中强调的阶级特性的价值是各章。 让我们努力计算这种网站的数量。
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
![By Class Name](/selenium_webdriver/images/by_class_name.jpg)
产出显示了这一信息——退出代码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》的网络版,其内容如下:
![By Tagname browser](/selenium_webdriver/images/by_tagname_browser.jpg)
上述图像中强调的标签价值为 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
![Python Codes](/selenium_webdriver/images/python_codes.jpg)
产出显示了这一信息——退出代码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联系法》:
![Terms of Use](/selenium_webdriver/images/terms_of_use.jpg)
重点提到的链接——上述图像中的使用术语有标签——部分链接文本——术语。 让我们在确定案文后努力确定案文。
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
![Printed in Console](/selenium_webdriver/images/printed_in_console.jpg)
产出显示了这一信息——退出代码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联系法》:
![Cookies Popcy](/selenium_webdriver/images/cookies_popcy.jpg)
重点提到的链接――上述图像中的库克群岛政策具有标签――联系文本――库克群岛政策。 让我们在确定案文后努力确定案文。
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
![By Link Text Outputs](/selenium_webdriver/images/by_pnk_text_outputs.jpg)
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,与链接文本定位器(从文字方法中找到)所查明的联系文本——库克群岛政策在奥索尔印刷。
By Name
一旦我们浏览一个网页,我们就必须与网页上的现有网站进行互动,例如点击连接/布顿,进入一个信箱内的案文,从而完成我们的自动化测试。
为此,我们的首要工作是确定这些要素。 我们可以使用识别要素的名称,并利用这种方法找到“名人——姓名”。 因此,以名单形式归还属地名称相应值的要素。
如果姓名属性没有对应值,应退还一份空档清单。
The syntax for identifying multi elements by name is as follows -
driver.find_elements_by_name("value of name attribute")
让我们看一看《html》的网络版,其内容如下:
![By Name Browser](/selenium_webdriver/images/by_name_browser.jpg)
上述图像中强调的编辑箱有一个名称特征,可检索价值。 让我们在发现这一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
![Selenium Python gets Printed](/selenium_webdriver/images/selenium_python_gets_printed.jpg)
产出显示了这一信息——退出代码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].
如果父母中有一生子女,而且我们要确定哪一个孩子,那么这种表达方式就应该有哪一种类型。
![Rules to Create CSS Expression](/selenium_webdriver/images/rules_to_create_css_expression.jpg)
在上述法典中,如果我们想确定第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》的网络内容。
![Rules of CSS Expression](/selenium_webdriver/images/rules_of_css_expression.jpg)
上述图像中强调的编辑箱有一个名称特征,可进行价值检索,标语应当为投入[名称=搜索]。 让我们在发现这一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
![Python Tutorialspoint](/selenium_webdriver/images/python_tutorialspoint.jpg)
产出显示了这一信息——退出代码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法典》——从根基开始。
![Home Starting](/selenium_webdriver/images/home_starting.jpg)
单元之家的绝对标准如下:
/html/body/span[1]/span/span[1]/a.
![Absolute Xpath](/selenium_webdriver/images/absolute_xpath.jpg)
部分住宅的相对食堂如下:
//a[@title= TutorialsPoint - Home ].
![Relative Xpath](/selenium_webdriver/images/relative_xpath.jpg)
Functions
还有一些职能可以帮助确定相对的Xpa表示——
text(
It is used to identify an element with the help of the visible text on the page. x的表述如下:
//*[text()= Home ].
![Text](/selenium_webdriver/images/text.jpg)
start- with
它用来确定一个要素,其属性价值始于具体案文。 这一功能通常用于每一页负荷价值变化的特性。
让我们看Q/A要素的html——
![Attribute Value](/selenium_webdriver/images/attribute_value.jpg)
x应表述如下:
//a[starts-with(@title, Questions & )].
![Console Output](/selenium_webdriver/images/console_output.jpg)
contains(
它确定了一个要素,其属性价值包含一个次案文。 这一功能通常用于每一页负荷价值变化的特性。
x的表述如下:
//a[contains(@title, Questions & Answers )].
![Contains QA](/selenium_webdriver/images/contains_qa.jpg)
让我们看看一下《html》的网络内容。
![HTML Code of Webelement](/selenium_webdriver/images/html_code_of_webelement.jpg)
上述图像中强调的编辑箱有一个名称特征,有价值搜索,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
![Selenium gets Printed](/selenium_webdriver/images/selenium_gets_printed.jpg)
产出显示了这一信息——退出代码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可见度:
内容——待定
让我们等到案文——在点击链接时可以找到的小组——小组。
![Team Link](/selenium_webdriver/images/team_pnk.jpg)
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
产出如下:
![Exppcit Wait](/selenium_webdriver/images/exppcit_wait.jpg)
产出显示了这一信息——退出代码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
产出如下:
![Imppcit Wait Wait](/selenium_webdriver/images/imppcit_wait.jpg)
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 在点击FQ链接时,网门人等待了0.5秒,然后进入下一步。 另外,下一页的标题(从司机处获得)。 标题方法——经常被问到的问题——传译者点在专栏上印刷。
Selenium Webdriver - Pop-ups
一个新的人口窗口可打开点击连接点或 but子。 网上用户因违约而控制了主页,以便查阅新人群中的内容,网络用户控制必须从主页转移到新的人口窗口。
Methods
处理新人群的方法如下:
driver. Current_window_handle • 重点获取窗户的处理id。
driver.window_handles- 获取所有开端窗户的地址清单。
driver.swtich_to.window(<窗口处理id >- 将网络用户控制转向开放的窗口,其处理id作为参数通过。
![Sign in with Apple Button](/selenium_webdriver/images/sign_in_with_apple_button.jpg)
在用 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
![Pop Ups](/selenium_webdriver/images/pop_ups.jpg)
产出显示了这一信息——退出代码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
![Backward and Forward Navigation](/selenium_webdriver/images/backward_and_forward_navigation.jpg)
产出显示了这一信息——退出代码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
![Cookies](/selenium_webdriver/images/cookies.jpg)
产出显示了这一信息——退出代码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
![Selenium Exceptions](/selenium_webdriver/images/selenium_exceptions.jpg)
产出显示这一信息——退出第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 它用于删除所有在当地和偏远地区开展的行动。
让我们点击这一联系——使用行动任务方法的隐私政策——
![Privacy Popcy](/selenium_webdriver/images/privacy_popcy.jpg)
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
![Action Chains](/selenium_webdriver/images/action_chains.jpg)
产出显示了这一信息——退出代码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》的网络内容:
![Refund Popcy](/selenium_webdriver/images/refund_popcy.jpg)
上述图像中强调的链接有标签——部分链接文本——退款。 让我们在查明这一联系后,设法点击这一联系。
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
![Return Refund and Cancellation Popcy](/selenium_webdriver/images/return_refund_and_cancellation_popcy.jpg)
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,申请的页标题(从司机处获得)。 标题方法——回返、退款和复读; 免职政策——地点点印在座
Selenium Webdriver - Forms
可使用ium网络用户提交表格。 一个页的表格由“带”、“形”和“标签”组成。 它包含诸如ed子、滴水、连接等子点。 表格也可在提交方法的帮助下提交。
syntax 表格:
src = driver.find_element_by_css_selector("#draggable") src.submit()
让我们看看在标的内涵的html。
![HTML Code of Elements](/selenium_webdriver/images/html_code_of_elements.jpg)
在提交上述《html守则》表格时,显示以下警示信息。
![HTML Code](/selenium_webdriver/images/html_code.jpg)
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
![External Pages](/selenium_webdriver/images/external_pages.jpg)
产出显示了这一信息——退出代码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 and Drop Functionapty](/selenium_webdriver/images/drag_and_drop_functionapty.jpg)
在上述形象中,名字——我对我的目标的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
![Widgets](/selenium_webdriver/images/widgets.jpg)
在处决之后,名字中的内容——我对我的目标的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号的内容。
![Frame Bottom](/selenium_webdriver/images/frame_bottom.jpg)
上述图像中强调的标签是框架,名称属性的价值是框架。
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
![Frame Bottom](/selenium_webdriver/images/frame_bottom.jpg)
产出显示了这一信息——退出代码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 Here Link](/selenium_webdriver/images/cpck_here_pnk.jpg)
点击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
![The Internet](/selenium_webdriver/images/the_internet.jpg)
产出显示了这一信息——退出代码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
![JS Prompt](/selenium_webdriver/images/js_prompt.jpg)
产出显示了这一信息——退出代码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》的网络版,其内容如下:
![Web Element](/selenium_webdriver/images/web_element.jpg)
上述图像中强调的链接有标签——部分链接文本——退款。 让我们在查明这一联系后,设法点击这一联系。
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
![Popcy Output](/selenium_webdriver/images/popcy_output.jpg)
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,申请的页标题(从司机处获得)。 标题方法——回归、退款和复读; 免职政策——选民点印在议会。
我们现在看看另一个网络内容——《html法典》。
![Another Webelement](/selenium_webdriver/images/another_webelement.jpg)
上述图像中强调的链接有标签——一种和链接文本——隐私政策。 让我们在查明这一联系后,设法点击这一联系。
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
![Another Webelement Output](/selenium_webdriver/images/another_webelement_output.jpg)
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,申请的页标题(从司机处获得)。 标题方法——图兰斯点的隐私政策——图西人点的照片在圣殿上印刷。
Selenium Webdriver - Handpng Edit Boxes
ium可用于向ed箱输入文字。 输入标签代表了一个信箱,其类型特征应具有案文的价值。 它可以与任何地点,例如:id、阶级、名称、 c、Xpath和标签。
为了把价值输入一个ed箱,我们必须使用这种方法发送钥匙。
让我们看看一下《html》的网络内容。
![Handpng Edit Boxes](/selenium_webdriver/images/handpng_edit_boxes.jpg)
上述图像中强调的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
![Handpng Edit Boxes Output](/selenium_webdriver/images/handpng_edit_boxes_output.jpg)
产出显示了这一信息——退出代码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
![Color Support](/selenium_webdriver/images/color_support.jpg)
Generating HTML Test Reports in Python
我们可以利用测试测试框架,通过我们的硫酸ium测试生成超文本报告。 为了举行抗议,我们必须行使以下指挥权:
pip install pytest.
一旦安装完毕,我们就能够指挥控制安装的测试版本。
pytest –version
作为一种测试标准,含有Pytest的灰色档案应当从测试开始,或以测试结束。 此外,所有测试步骤都应采用一种方法,其名称应当从测试开始。
为了管理一个Pytest文档,我们可以打开终点站,从目前的目录转到我们想要执行的Pytest档案目录。 接着,指挥系统如下:
py.test -v -s.
让我们看看一个符合测试框架的项目结构。
![Pytest Test Framework](/selenium_webdriver/images/pytest_test_framework.jpg)
在上述图像中,它显示,Pytest文档有名称测试-p.py,并且含有带有姓名测试的测试方法。 Sel。
为了为 Sel测试生成一个超文本报告,我们必须在指挥下安装一个gin:pip安装了pytest-html。 为了编写这份报告,我们必须从目前的目录转向我们想要执行的Pytest档案目录。 然后指挥:pytest --html=report.html。
在指挥成功执行后,在该项目内产生了一个称为报告的新档案。
![Python Project Test](/selenium_webdriver/images/python_project_test.jpg)
Right-cpck on the report.html and selected the Options. Path.
![Report HTML](/selenium_webdriver/images/report_html.jpg)
打开在浏览器上复制的文件,以获得超文本报告。
![Report](/selenium_webdriver/images/report.jpg)
紫外线报告提供了关于实施测试的环境的信息。 报告还载有关于测试摘要和结果的资料。
Read/Write data from Excel
我们可以阅读和书写Selenium 网页driver 谷地的外表数据。 一部Excel工作手册包括多个表格,每个表由电池和栏目组成。
为了与Excel公司合作,我们必须利用开放式图书馆。 为了安装这一包裹,我们必须行使以下指挥权:
pip install openpyxl.
此外,我们必须在我们的法典中增加开放式乐施的发言。
![Import Openpyxl](/selenium_webdriver/images/import_openpyxl.jpg)
为了开立一本Excel工作书,该方法装上了“工作手册”,并将“Excel”文件作为这种方法的参数。 为了确定积极的表格,我们必须在工作手册中采用积极的方法。
阅读一个单元后,该方法小组在活性板上使用,而浏览器和栏号作为这种方法的参数。 然后,在某个特定单元采用价值法,读取其内部的数值。
让我们读到第三行和第二栏价值D的数值,如下文所示为地名数据x的外壳工作手册。
![Data xlsx](/selenium_webdriver/images/data_xlsx.jpg)
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
![Output](/selenium_webdriver/images/output.jpg)
为了写一个单元,该方法小组在活性板上应用,而浏览器和栏号作为这种方法的参数。 然后,在某个特定单位采用价值计算方法进行书写。 最后,《工作手册》将用这种方法节省下来,而要节省的文件途径则作为这种方法的参数。
我们将使用Excel名称测试数据,并在我们项目的数据夹中予以保存。 我们将在第三行和第七栏书写价值——硫酸.。
![Text Data Xlsx](/selenium_webdriver/images/text_data_xlsx.jpg)
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
![Workbook in Selenium Webdriver](/selenium_webdriver/images/workbook_in_selenium_webdriver.jpg)
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,该数值——Selenium-030在囚室用地址——第3行和第8栏——写成。
Selenium Webdriver - Handpng Checkboxes
我们可以与Selenium网络用户一道处理检查箱。 检查箱由《html法典》中的输入标签代表,其类型应具有检查箱的价值。
Methods
处理检查箱的方法如下:
Cpck - 用于检查检查箱。
如果检查箱没有检查,将使用。 如果检查箱,它就归还了一种毛豆价值。
让我们看一看一个检查箱的html代码,如下:
![Handpng Checkboxes](/selenium_webdriver/images/handpng_checkboxes.jpg)
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
![Handpng Checkboxes Output](/selenium_webdriver/images/handpng_checkboxes_output.jpg)
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,该电文——核对箱也印制了,因为支票箱中采用的是选用的方法,其真实价值已经退还。
Executing Tests in Multiple Browsers
食堂支持 Chrome、陈代谢、Sato、IE等多个浏览器。 为了在某个浏览器中进行测试,我们必须从以下链接下载该浏览器的可执行文件:
http://www.selenium.dev/downloads/>。
链接一旦启动,将排入浏览器科。 根据这一规定,所有支持处决的可用的浏览器都列出。 文件链接上的浮点下载相应的可执行文件。
![Browsers](/selenium_webdriver/images/browsers.jpg)
例如, 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.
![List of All Versions](/selenium_webdriver/images/pst_of_all_versions.jpg)
Cpck on apnk todown the chromedriver. 符合我们当地 Chrome浏览器版本的前卷。 在下一页,我们应直接取向平台Windows、LC和Mac可下载的zip文档。
![Chromedriver exe](/selenium_webdriver/images/chromedriver_exe.jpg)
Cpck on apnk todown the chromedriver. 符合我们当地业务系统的外壳。 下载后,将文件整理起来,并在项目目录内予以保存。
例如,在我们的项目中,我们挽救了rom。 司机的档案。 然后,我们必须在网络用户中指明这一档案的道路。 Chrome(可执行性_path= < chromedriver > )。
![Chrome Driver](/selenium_webdriver/images/chrome_driver.jpg)
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
![Python Test](/selenium_webdriver/images/python_test.jpg)
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,测试结果的浏览器——神学院印刷。
同样,如果我们想在Peter browser(转化超过47个)中进行试验,我们就必须使用riv子。 档案。
Selenium Webdriver - Headless Execution
ium支持无情处决。 在 Chrome浴器中,可以在 Chrometions树类的帮助下执行无头处决。 我们必须制造这一类的物体,并采用添加方式。 最后,通过该参数——没有这种方法。
让我们获得标题——关于图里斯点的职业——以无头方式发射的网页的地图——
![Headless Execution](/selenium_webdriver/images/headless_execution.jpg)
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
![About Careers at Tutorials Point](/selenium_webdriver/images/about_careers_at_tutorials_point.jpg)
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,申请的页标题(从司机处获得)。 标题方法——图兰斯角的职业——图西里点的印刷版。
Selenium Webdriver - Wait Support
ium提供执行明确和灵活等待同步的等待支持。 为此,我们必须使用 class类。
等候支助的syntax如下:
w = WebDriverWait(driver, 5) w.until(EC.存在——((By.TAG_NAME, h1 )))
一旦我们创建网络驱动者Wait阶级的标语,我们就可以在网上使用以下方法:
until_not 在收益价值不真实之前,使用给司机的方法作为参数。
让我们等到能够点击链接的正文小组点——在网页上由网络驱动器Wait方法帮助的小组。
![Webdriver Team](/selenium_webdriver/images/webdriver_team.jpg)
在点击监察组的链接时,案文小组@Ttorials Point出现。
![Webdriver Team pnk](/selenium_webdriver/images/webdriver_team_pnk.jpg)
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
![Python Code](/selenium_webdriver/images/python_code.jpg)
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 另外,案文(从文字方法中可以看出)——小组@Ttorials Point在圣殿印刷。
Selenium Webdriver - Select Support
谷物可以在选修班的帮助下处理静态下降。 降幅由选定的标签确定,其选择用标签办法表示。 该声明――从 se.webdriver.support.select import观改为选择性班级。
![Dropdown Options](/selenium_webdriver/images/dropdown_options.jpg)
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
![Dropdown List](/selenium_webdriver/images/dropdown_pst.jpg)
产出显示,“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
![Pycharm Projects](/selenium_webdriver/images/pycharm_projects.jpg)
产出显示了这一信息——退出代码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
![Web Page is Scrolled](/selenium_webdriver/images/web_page_is_scrolled.jpg)
产出显示,该网页上下页。
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
![Careers](/selenium_webdriver/images/careers.jpg)
产出显示了这一信息——退出代码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
![Scrolled to Bottom](/selenium_webdriver/images/scrolled_to_bottom.jpg)
产出显示,该网页上下页。
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
![Tutorialspoint png](/selenium_webdriver/images/tutorialspoint.png)
产出显示,图像辅导点。 在该项目内建立了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
![Right Cpck](/selenium_webdriver/images/right_cpck.jpg)
在实施后,与名称的联系得到了正确评价,所有新的选择都得到了正确评价。
Selenium Webdriver - Double Cpck
ium可以在行动帮助下进行 mo变运动、主要新闻、对元素的 h、双重点击、拖拉和退步行动。 链式班。 这种方法双轨制成一个元件。
The syntax for using the Double Point is as:
double_cpck(e=None)
这里,即是双重点击的要素。 如无提及,则点击目前停用的位置。 我们必须从 se中补充这一发言。 网上进口行动与“行动任务”类别合作。
让我们对以下要素进行双重点击:
![Controls](/selenium_webdriver/images/controls.jpg)
在上述图像中,我看到,在把双点点点击时,我! 纽州产生了警示箱。
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
![Process Finished](/selenium_webdriver/images/process_finished.jpg)
产出显示了这一信息——退出代码0的过程意味着上述雷达法成功执行。 此外,警示文本——双射弹! 页: 1 两点点点击双筒点击我造成的警钟! 纽伦。
Advertisements